int自动装箱 Integer细节

这里记一次自动装箱、拆箱的细节

Integer integerA=1;

Integer integerB=1;

这两个对象的引用是一样的,也就是说integerA===integerB是true

这是因为自动装箱会使用一个叫IntegerCache的缓存,使得第一次:Integer integerA=1会缓存到IntegerCache中

第二次Integer integerB=1;会先去 IntegerCache中查找是否有1,如果有就直接将integerB引用指向integerA。

这里我不知道是否与常量池一致(或者这个就属于常量池,大神路过请指点一下)

但是这里使用IntegerCache有个限制,

Integer integerC=128;

Integer integerD=128;

这里integerC===integerD就为false;

只是因为IntegerCache只缓存-128~127(这个最大值可以通过设置虚拟机的-XX:AutoBoxCacheMax=size )范围内的数据。

其他可自动装箱应该也有类似的情况





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值