數據類型及類型轉換

棧:棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。每個線程都有一個棧,棧內的數據都是私有的 ,方法執行完後自動收回內存空間程序員

堆:堆區(heap) — 通常由程序員分配釋放, 若程序員不釋放,程序結束時可能由GC回
收 ,存儲的全是對象,被全部線程共享。注意它與數據結構中的堆是兩回事,分配方式卻是相似於鏈表,
數據結構

方法Method 靜態Static:被全部線程共享,Class的方法等 ;Static變量 這裏的變量都是全局惟一的。函數

1、數據類型spa

JAVA基本數據類型及之間的轉換 - 小松鬆 - liusong0605 的博客

 基本數據類型:比對象更小的單位,不是new出來的,變量直接包含了具體的值,存儲在棧中,存儲比引用類型高效。線程

引用數據類型:除基本數據類型以外的全部數據類型,new出來的對象存儲在堆中,變量其實是指向一個對象的句柄。code

基本類型有如下四種: int長度數據類型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、 float長度數據類型有:單精度(32bits float)、雙精度(64bits double) boolean類型變量的取值有:ture、false char數據類型有:unicode字符,16位 對應的類類型:Integer、Float、Boolean、Character、Double、Short、Byte、Long對象

類型轉換ip

分爲如下幾種狀況:內存

1)低級到高級的自動類型轉換;
2)高級到低級的強制類型轉換(會致使溢出或丟失精度);
3)基本類型向類類型轉換;
4)基本類型向字符串的轉換;
5)類類型向字符串轉換 unicode

轉換原則

從低精度向高精度轉換 byte 、short、int、long、float、double、char 注:兩個char型運算時,自動轉換爲int型;當char與別的類型運算時,也會先自動轉換爲int型的,再作其它類型的自動轉換

基本類型向類類型轉換

正向轉換:經過類包裝器來new出一個新的類類型的變量 Integer a= new Integer(2); 反向轉換:經過類包裝器來轉換 int b=a.intValue();

類類型向字符串轉換

正向轉換:由於每一個類都是object類的子類,而全部的object類都有一個toString()函數,因此經過toString()函數來轉換便可 反向轉換:經過類包裝器new出一個新的類類型的變量 eg1: int i=Integer.valueOf(「123」).intValue() 說明:上例是將一個字符串轉化成一個Integer對象,而後再調用這個對象的intValue()方法返回其對應的int數值。 eg2: float f=Float.valueOf(「123」).floatValue() 說明:上例是將一個字符串轉化成一個Float對象,而後再調用這個對象的floatValue()方法返回其對應的float數值。 eg3: boolean b=Boolean.valueOf(「123」).booleanValue() 說明:上例是將一個字符串轉化成一個Boolean對象,而後再調用這個對象的booleanValue()方法返回其對應的boolean數值。 eg4:double d=Double.valueOf(「123」).doubleValue() 說明:上例是將一個字符串轉化成一個Double對象,而後再調用這個對象的doubleValue()方法返回其對應的double數值。 eg5: long l=Long.valueOf(「123」).longValue() 說明:上例是將一個字符串轉化成一個Long對象,而後再調用這個對象的longValue()方法返回其對應的long數值。 eg6: char=Character.valueOf(「123」).charValue() 說明:上例是將一個字符串轉化成一個Character對象,而後再調用這個對象的charValue()方法返回其對應的char數值。

基本類型向字符串的轉換 正向轉換: 如:int a=12; String b;b=a+」」;

反向轉換: 經過類包裝器 eg1:int i=Integer.parseInt(「123」) 說明:此方法只能適用於字符串轉化成整型變量 eg2: float f=Float.valueOf(「123」).floatValue() 說明:上例是將一個字符串轉化成一個Float對象,而後再調用這個對象的floatValue()方法返回其對應的float數值。 eg3: boolean b=Boolean.valueOf(「123」).booleanValue() 說明:上例是將一個字符串轉化成一個Boolean對象,而後再調用這個對象的booleanValue()方法返回其對應的boolean數值。 eg4:double d=Double.valueOf(「123」).doubleValue() 說明:上例是將一個字符串轉化成一個Double對象,而後再調用這個對象的doubleValue()方法返回其對應的double數值。 eg5: long l=Long.valueOf(「123」).longValue() 說明:上例是將一個字符串轉化成一個Long對象,而後再調用這個對象的longValue()方法返回其對應的long數值。 eg6: char=Character.valueOf(「123」).charValue() 說明:上例是將一個字符串轉化成一個Character對象,而後再調用這個對象的charValue()方法返回其對應的char數值。

相關文章
相關標籤/搜索