包裝類的快取問題

2021-10-05 01:58:03 字數 1124 閱讀 7373

整型,char型別所對應的包裝類,在自動裝箱時,對於-128~127之間的值會進行快取處理,從而提高效率

快取的原理是:如果資料在-128到127這個區間內,則在類載入的時候就已經為該區間內的每個數值建立了物件,並且把這256個物件都放在乙個叫cahce的陣列中

原始碼如下

public

static integer valueof

(int i)

也就是說,如果資料在該區間內,則會之間獲取陣列中對應的包裝類物件的引用,如果不再該區間內,則要通過new來呼叫包裝類的構造方法建立乙個物件

示例**

//包裝類的快取問題

integer a1 = integer.

valueof

(123);

integer b1 = integer.

valueof

(123);

system.out.

println

(a1==b1)

;system.out.

println

(a1.

equals

(b1));

system.out.

println

("############");

integer a2 = integer.

valueof(-

129)

;integer b2 = integer.

valueof(-

129)

;system.out.

println

(a2==b2)

;system.out.

println

(a2.

equals

(b2)

);

結果

true

true

############

false

true

拜了個拜!

java 包裝類的快取機制

1 前提 發生自動裝箱的過程 基本型別 包裝型別 建立乙個包裝類物件有兩種方法 1 構造器方法 就是new出來 2 自動裝箱 就是編譯器自動呼叫包裝類的valueof方法 兩種方法的區別 構造器方法 不論值的大小,返回的將都會是乙個新物件 自動裝箱會先經過判斷,再決定返回的是乙個新物件還是常量池中已...

Java包裝類的快取範圍

包裝類提供了物件的快取,具體的實現方式為在類中預先建立頻繁使用的包裝類物件,當需要使用某個包裝類的物件時,如果該物件封裝的值在快取的範圍內,就返回快取的物件,否則建立新的物件並返回。在包裝類中,快取的基本資料型別值得範圍如下 包裝型別 基本資料型別 快取物件 基本資料型別值 boolean bool...

Java包裝模擬較和包裝類底層快取陣列

關於包裝類的比較問題,我們先看以下 integer i1 100 integer i2 100 integer i3 200 integer i4 200 system.out.println i1 i2 true system.out.println i3 i4 false double d1 1...