码迷,mamicode.com
首页 > 其他好文 > 详细

/-----------关键字:integer缓存

时间:2017-07-24 14:45:21      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:.com   blog   integer   ==   src   dash   ges   logs   内存   

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缓存

标签:.com   blog   integer   ==   src   dash   ges   logs   内存   

原文地址:http://www.cnblogs.com/mollenblogs/p/7228392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!