包裝類進行對比時 需要使用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...