看啥推荐读物
专栏名称: 算法爱好者
算法是程序员的内功!伯乐在线旗下账号「算法爱好者」专注分享算法相关文章、工具资源和算法题,帮程序员修炼内功。
今天看啥  ›  专栏  ›  算法爱好者

为什么 Java 中“1000==1000”为false,而”100==100“为true?

算法爱好者  · 公众号  · 算法  · 2020-11-21 21:07
(给算法爱好者加星标,修炼编程内功)来源:codeceohttp://www.codeceo.com/article/why-java-1000-100.html为什么 Java 中“1000==1000”为false,而”100==100“为true? 这是一个挺有意思的讨论话题。如果你运行下面的代码:Integer a = 1000, b = 1000;System.out.println(a == b);//1Integer c = 100, d = 100;System.out.println(c == d);//2你会得到falsetrue基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同。因此,后面一条语句也应该是false 。这就是它有趣的地方了。如果你看去看 Integer.java 类,你会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象所以事情就成了,所 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照