128陷阱

指的是两个Integer对象直接用==判定在某个范围内返回为true

      在(-128,127)范围内为true

当Ingeter与int比较时为true,因为拆箱总比装箱性能好(装箱要构建新的对象浪费空间)integer默认做了自动拆箱的处理

 

源码角度分析:

        在自动装箱的方法中,由源码可知先判断了i是否存在于IntegerCache中的cache数组中,如若存在则直接返回数组中的值,若不存在则构建一个新的Integer对象

  

界定了cache数组的范围

 两个Ineger对象比较时如果在这个范围内,拿到的就是同一个数组里的同一个对象,因此用==判定时返回为true,如果不在这个范围内则需要分别构建新的对象用==判定即返回false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值