java包裝類關於自動裝箱的緩衝機制

2021-09-13 03:18:47 字數 1036 閱讀 9609

包裝類進行對比時 需要使用equals 因為==比較的時二者的位址

以下這些包裝類都提供了256個緩衝物件,這些物件被放置在乙個陣列中,當該包裝類數值在-128~127時會直接引用緩衝物件 而不建立新物件

byte integer short long character(0

~127

)boolean

(所有的true是同一引用 所有的false是同一引用)

注意:緩衝區時valueof方法提供的 所以只有在自動裝箱時 才有該機制 而直接建立物件時沒有

/*

integer in1 = new integer(10);

integer in2 = new integer(10);

system.out.println(in1==in2);

system.out.println(in1.equals(in2));

*/integer in1 =

128;

//new integer(128)

integer in2 =

128;

//new integer(128)

integer in3 = integer.

valueof(10

);//cache[138]

integer in4 = integer.

valueof(10

);//cache[138]

/* -128~127 256

0~255

cache[0]~~~數值為-128的integer物件

cache[1]~~~數值為-127的integer物件

...cache[255]~~~數值為127的integer物件

*/system.out.

println

(in1==in2)

;system.out.

println

(in1.

equals

(in2)

);

包裝類與自動裝箱

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

包裝類,自動裝箱與拆箱

int 整型 2147483648 2147483647 short 短整型 32768 32767 byte 位 128 127 long,boolean,byte,double,float 包裝類針對基本資料型別的物件轉換而實現的,如果要將基本資料型別以類的形式進行處理,那麼就要進行包裝 裝箱 ...

包裝類自動裝箱和拆箱原理

包裝類的自動裝箱和拆箱是jdk1.5的新特性 一.首先 了解自動裝箱的過程 有兩種自動裝箱過程 第一種 128 127 之內 呼叫相應包裝類的valueof 例如 integer i 12 integer a 23 這些過程由jdk 編譯器自動裝箱完成的 即 會自動呼叫 integer.valueo...