/-----------關鍵字:integer緩存
阿新 • • 發佈:2017-07-24
boolean stat spa character 我們 對象 -1 補充 ima
M1:關於integer緩存
M2:代碼如下
1 public class TestInteger { 2 public static void main(String[] args){ 3 Integer i1 = 127; 4 Integer i2 = 127; 5 System.out.println(i1==i2); 6 7 Integer i3 = 128; 8 Integer i4 = 128; 9 System.out.println(i3==i4);10 11 Integer i5 = -128; 12 Integer i6 = -128; 13 System.out.println(i5==i6); 14 15 Integer i7 = -129; 16 Integer i8 = -129; 17 System.out.println(i7==i8); 18 } 19 }
M3:結果
M4:分析
為了減少頻繁創建對象造成系統壓力,類在加載的時候就將-128~127的integer對象創建好放內存裏,當我們要用的時候就會在這片內存裏面找,找到了就引用它的地址,沒找到就再重新弄塊地創建。那麽這裏的i1和i2內存裏本來就有直接引用自然就相同。i3和i4都會去指定內存裏找,沒有都會重新找塊地創建,引用的地址自然就不相同。
M5:補充
- Boolean:(全部緩存)
- Byte:(全部緩存)
- Character(<= 127緩存)
- Short(-128 — 127緩存)
- Long(-128 — 127緩存)
- Integer(-128 — 127緩存)
- Float(沒有緩存)
- Doulbe(沒有緩存)
M6:備註
歡迎大家一起學習,討論!如有疑問請給我留言!
/-----------關鍵字:integer緩存