Java之Integer缓冲区

摘要:Java预先创建了256个常用的整数包装类型对象,在实际应用当中,对已创建的对象进行复用,节约内存效果明显。

为何要写这个?;就是为了节约内存!!!

  1. Integer是什么:
    Int的包装类(学Java的都知道)

  2. 自动装箱、拆箱:
    JDK5之后,赋值时提供的自动装箱和自动拆箱
    例如:
    [scode type=“share”]Integer integer1 = 10; // 【自动装箱】将基本类型直接赋值给包装类型
    int int2 = integer1; // 【自动拆箱】将包装类型引用赋值给基本类型(赋的是值)[/scode]

3.整数类型缓冲区分析:
案例1:
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
在这里插入图片描述
分析:
为什么是false而不是true
因为integer1,integer2是两个对象
比较的是地址而不是value值所以就是false


  案例2:
     Integer integer3 = 100;//自动装箱Integer.valueOf()
     Integer integer4 = 100;

![Integer.valueOf()][2]
分析:
静态缓冲区
缓冲区:大量的重复应用下,节约内存的效果明显
integer3是地址值,调用静态方法Integer.valueOf()
integer4和integer3是相同的地址值,在加载类的时候已经做了处理


  案例3:
     Integer integer5 = Integer.valueOf(200);//自动装箱
     Integer integer6 = Integer.valueOf(200);

![IntegerCache][3]
分析:
为什么是false而不是true
1.IntegerCache的缓冲区的区间
2.integer5/integer6并不在cache[]中。cache[]不包括200,就重新new了然后就是false
1.IntegerCache的缓冲区的区间
![IntegerCache][4]
2.integer5/integer6并不在cache[]中
![cache][5]

文章外链个人blog:https://www.dlaiblog.com/archives/34/

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值