首页 > 代码库 > /-----------关键字:integer缓存
/-----------关键字:integer缓存
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缓存
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。