基本介紹
- 中文名:Java拆裝箱
- 外文名:Java boxIng & unBoxing
- 拆箱就是把Long,Integer,Double,Float 等將基本數據類型的首字母大寫的相應的引用類型轉化為基本數據類型的動作就叫拆箱。
4.以下說明下Java的基本數據類型與引用類型:
Java四類八種基本數據類型
第一類,整型:byte int short long
short 的位數不能超過4位,否則會報不能由int 轉換成short的編譯錯誤
第二類,浮點型:double,float ;
double 可以直接定義如變數名等於73.92,而float要在後面加個f,否則編譯器會認為是double而報轉換 類型錯誤
第三類,邏輯型:boolean 預設值(默認值)為false
只能取值true或者false
第四類,字元型:char
單眼號定義,漢字只能存一個,數字也只能存一位
除開這八種類型,其他的都是引用類型了
引用類型:類、接口類型、數組類型、枚舉類型、註解類型
5.Java數據類型的存儲位置:
基本數據類型在被創建時,在棧上給其劃分一塊記憶體,將數值直接存儲在棧上;
引用數據類型在被創建時,首先要在棧上給其引用(句柄)分配一塊記憶體,而對象的具體信息都存儲在堆 記憶體上,然後由棧上面的引用指向堆中對象的地
6.Java數據類型的比較:
基礎數據類型的比較只能使用==號,比的是數據的值,而不能使用equals;引用類型兩個都可以,當使用 ==比較的是記憶體地址,使用equals比較的是堆記憶體裡面的內容
7.拆裝箱的性能:
儘管Java編譯器能夠幫組我們自動進行相應基本數據與引用類型的相互轉化,但是不太建議編程中大量使 用,因為存在二次轉化,考慮性能。
儘量避免基礎類型與引用類型的自動拆裝箱,損耗性能
避免 Integer integer = 10;起碼得是Integer integer = new Integer(10);
儘量不要用Integer.valueOf(String str);而要用Integer.parseInt(String str)
Integer.valueOf()把String 型轉換為Integer對象。因此在int countNum = ? 的情況下用Integer.parseInt() 很好的,直接變成int類型的值,而不用再拆箱變成基礎類型了。
Integer.parseInt()把String 型轉換為Int型,
就是說Integer.valueOf(S)是針對包裝類來說的,而Integer.parseInt(s) 是針對變數而言