物件包裝器與自動裝箱

2021-07-26 12:28:12 字數 1822 閱讀 7968

由於每個值分別包裝在物件中,所以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...