这是一个挺有意思的讨论话题。 如果你运行下面的代码:
你会得到:
基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。 因此,后面一条语句也应该是false 。 这就是它有趣的地方了。如果你看去看 Integer.java 类,你会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。 所以事情就成了,所有的小整数在内部缓存,然后当我们声明类似
的时候,它实际上在内部做的是:
现在,如果我们去看valueOf()方法,我们可以看到
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|