Java作爲面向對象的語言,在設計類時爲八個基本數據類型設計了一個對應的類進行代表,這樣八個和基本數據類型對應的類統稱爲包裝類(Wrapper Class)
包裝類均位於java.lang包,包裝類和基本數據類型的對應關係如下所示:
基本數據類型 包裝類
byte –>Byte
boolean–>Boolean
short–>Short
char–>Character
int–>Integer
long–>Long
float–>Float
double–>Double
在這八個類名中,除了Integer和Character類以後,其它六個類的類名和基本數據類型一直,只是類名的第一個字母大寫即可。
注意前六個類派生於公共的超類Number。對象包裝類是不可變的,一旦構造了包裝類,就不允許更改包裝在其中的值。
包裝類也是由 final修飾的,因此無法定義子類。
假想定義一個整型數組列表。而尖括號中的類型參數不允許是基本類型,只能使用包裝類來聲明對象的數組列表。
比如:ArrayList list = new ArrayList<>( ) ;
當然,因爲每個值都分別包裝在對象中,ArrayList的效率遠遠低於int[ ]數組。
Java 5.0後支持自動裝箱
list.add(3)將會自動轉換爲list.add(Interger.valueOf(3))
相反的,當將一個Interger對象賦給一個int值時,將會自動拆箱。
Int n = list.get( i );
將轉換爲
Int n = list.get( i ).intValue( );
甚至在算數表達式中也能夠進行自動裝箱和拆箱。