== arraylist

在这里插入图片描述
本来出问题,我觉得应该是 == 不能使用,关于这边是自动装箱 这一类问题。

本质上也是 Integer == Integer ,
但是问题在于,为什么 前两个 41 是指向同一个 integer 类。
而后面不是呢??

摘:
因为,你现在用的是Integer == Integer而不是int == int
这个时候,比较的是两个java.lang.Integer,看他的源码,你会发现,它会缓存[-128, +127] 这点Integer对象,供Integer.valueOf方法使用,而你之前调用AddList.add(i);removeList.add(i);的时候,自动将int i封箱成Integer,就是通过这个Integer.valueOf方法,所以,你10-120这几个数字,两个list保存的是同一个对象,所以IntegerInteger返回true,而130开始,超过默认的缓存范围,两边放的是不同的Integer对象,IntegerInteger返回false

还是需要静下心去看源码啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值