由於每個值分別包裝在物件中,所以arraylist的效率遠遠低於int 陣列。
自動裝箱/拆箱
包裝器物件的比較使用equals()方法,不能使用==(==比較的是位址)。
包裝器類引用可以為null。
如果在乙個表示式中混合使用integer , double型別,integer值會自動拆箱,提公升為double,再裝箱為double。
integer
integer=4
; integer
integer2=4
; double
double1
=4.0;
double
d
=4.0;
system
.out
.println
(double1==d
);//包裝器型別與基本型別
system
.out
.println
(new
integer(2
)==new
integer(2
));//通過建構函式
system
.out
.println
(integer
==integer2
);//通過自動裝箱,且介於-128--127
system
.out
.println
(new
integer(4
)==integer
);//建構函式與自動裝箱
system
.out
.println
(integer
+double1);
輸出結果為:
true
false
true
false
8.0包裝類與包裝類的比較
關於[-128,127]:
字串型的值轉為基本型別:
字串轉包裝器型別
基本型別轉為字串
public intintvalue()
以int
型別返回該integer
的值。-----拆箱
public longlongvalue()
以long
型別返回該integer
的值
public static
integervalueof(int i)
返回乙個表示指定的
int 值的
integer 例項。-----裝箱
public static
integervalueof(
string s)
返回儲存指定的string
的值的integer
物件。
public static intparseint(
string s)
將字串引數作為有符號的十進位制整數進行解析
(九)物件包裝器與自動裝箱
有時候需要將基本資料型別轉換為物件,如int integer。integer這樣的類稱為物件包裝器類,該類一旦構造物件,便是不可變的。裝箱 list.add 3 自動變為 list.add integer.valueof 3 拆箱 int n list.get i 自動變為 int n list.g...
物件包裝器與自動裝箱(Java的128陷阱)
有時,需要將 int 這樣的基本型別轉換為物件。所有的基本型別都冇乙個與之對應的類。假設想定義乙個整型陣列列表。而尖括號中的型別引數不允許是基本型別,也就是說,不允許寫成 arraylist。這裡就用到了 integer 物件包裝器類。我們可以宣告乙個 integer物件的陣列列表。arraylis...
包裝類與自動裝箱
對應關係 基本資料型別包裝類 bytebyte booleanboolean shortshort charcharacter intinteger longlong floatfloat doubledouble int包裝類integer integer i new integer 1000 s...