源**:
//直接賦值
integer m1 =
128;
integer m2 =
128;
system.out.
println
(m1 == m2)
;//false
system.out.
println
(m1.
equals
(m2));
//true
//顯式呼叫構造器
integer m3 =
newinteger(20
);integer m4 =
newinteger(20
);system.out.
println
(m3 == m4)
;
反編譯後**:
//呼叫integer.valueof
integer m1 = integer.
valueof
(128);
integer m2 = integer.
valueof
(128);
system.out.
println
(m1 == m2)
; system.out.
println
(m1.
equals
(m2));
//呼叫構造器
integer m3 =
newinteger(20
);integer m4 =
newinteger(20
);system.out.
println
(m3 == m4)
;
可以看出
public
static integer valueof
(int i)
構造乙個新分配的integer物件,該物件表示指定的int值。
public
integer
(int value)
private
static
class
integercache
catch
( numberformatexception nfe)
} high = h;
//初始化cache陣列大小為 最大值個數 + 最小值個數 + 0佔乙個位置
cache =
newinteger
[(high - low)+1
];int j = low;
//將整數區間[low, hight]內的整數放入cache陣列
for(
int k =
0; k < cache.length; k++
) cache[k]
=new
integer
(j++);
// range [-128, 127] must be interned (jls7 5.1.7)
assert integercache.high >=
127;
}private
integercache()
}
Integer自動拆裝箱
integer a new integer 3 int b 3 integer c new integer 3 輸出 true system.out.println a b a b 輸出 false system.out.println a c a c 雖然包裝型別的變數是引用資料型別,但包裝類的例...
Integer自動拆箱 自動裝箱
package com.tmt.test code public class zhuangchaixiiangtest 這個的運算結果是什麼呢?new integer 128 int 128 true new integer 128 new integer 128 false integer 127...
Integer自動拆箱裝箱
integer a new integer 3 integer b 3 int c 3 system.out.println a b system.out.println a c 問題一 上面的輸出為啥?答案 false true 解答 第乙個是兩個引用之間的比較,他們沒有引用同一物件,所以為fal...