(九)物件包裝器與自動裝箱

2022-09-05 10:51:14 字數 464 閱讀 3998

有時候需要將基本資料型別轉換為物件,如int -> integer。integer這樣的類稱為物件包裝器類,該類一旦構造物件,便是不可變的。

裝箱

list.add(3)

自動變為

list.add(integer.valueof(3))

拆箱

int n = list.get(i)

自動變為

int n = list.get(i).intvalue()

注意:integer物件是不可變的,包含在包裝器的內容不會改變。不能使用包裝器類建立修改數值引數的方法。比如:

integer n = integer.valueof(2);

public void change(integer n)

方法外的n的內容不會因為方法內的n的改變而改變,因為兩者已經不是同乙個物件的引用了。

物件包裝器與自動裝箱

由於每個值分別包裝在物件中,所以arraylist的效率遠遠低於int 陣列。自動裝箱 拆箱 包裝器物件的比較使用equals 方法,不能使用 比較的是位址 包裝器類引用可以為null。如果在乙個表示式中混合使用integer double型別,integer值會自動拆箱,提公升為double,再裝...

物件包裝器與自動裝箱(Java的128陷阱)

有時,需要將 int 這樣的基本型別轉換為物件。所有的基本型別都冇乙個與之對應的類。假設想定義乙個整型陣列列表。而尖括號中的型別引數不允許是基本型別,也就是說,不允許寫成 arraylist。這裡就用到了 integer 物件包裝器類。我們可以宣告乙個 integer物件的陣列列表。arraylis...

包裝類與自動裝箱

對應關係 基本資料型別包裝類 bytebyte booleanboolean shortshort charcharacter intinteger longlong floatfloat doubledouble int包裝類integer integer i new integer 1000 s...