欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

== arraylist,

来源: javaer 分享于  点击 6818 次 点评:213

== 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

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

相关文章

    暂无相关文章

用户点评