Integer
類的常量
MIN_VALUE
: -231 , int 類型能夠表示的最小值
MAX_VALUE
:231 - 1 昔字, int 類型能夠表示的最大值
TYPE
:表示int 類型的class實(shí)例
SIZE
:32做个,用來以二進(jìn)制補(bǔ)碼形式表示 int 值的比特位數(shù)
BYTES
:4坛缕,用來表示二進(jìn)制補(bǔ)碼形式的int值的字節(jié)數(shù)
Integer
類圖
Integer
主要方法
Integer#parseInt(String, int)
方法余蟹,通過第一位字符判斷正負(fù),遍歷每一位燕锥,乘以進(jìn)制累加辜贵。
[圖片上傳失敗...(image-332bc6-1607262101295)]
IntegerCache
內(nèi)部類,緩存了IntegerCache.low
至 IntegerCache.high
的Integer 對(duì)象脯宿,而IntegerCache.low
為-128念颈,IntegerCache.high
默認(rèn)為127。
Integer#valueOf(int)
方法连霉,會(huì)先查詢緩存,如果命中就返回緩存對(duì)象嗡靡,否則new新對(duì)象跺撼。
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
int基本類型轉(zhuǎn)換成Integer包裝類型時(shí),編譯器編譯后讨彼,會(huì)通過此valueOf()方法轉(zhuǎn)換歉井,所以針對(duì)緩存范圍內(nèi)的裝箱,每次返回的是同一個(gè)對(duì)象哈误,超出緩存范圍的哩至,則每次返回不同的對(duì)象。
Integer a = 20;
Integer b = 20;
System.out.println(a == b);//true
Integer c = 200;
Integer d = 200;
System.out.println(c == d);//false