专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
今天看啥  ›  专栏  ›  程序员大咖

为什么1000 == 1000返回为False,而100 == 100会返回为True?

程序员大咖  · 公众号  · 程序员  · 2016-11-28 21:45
    

文章预览

点击上方 蓝色字体 关注「程序员大咖」 来源:回忆和感动 链接:evget.com/article/2015/11/19/23028.html 这是我们今天要讨论的话题,因为我觉得它非常的有趣。 如果你运行如下代码: Integer a = 1000, b = 1000;  System.out.println(a == b);//1 Integer c = 100, d = 100;  System.out.println(c == d);//2 你会得到以下运行结果: false true 我们知道,如果两个引用指向同一个对象,那么==就成立;反之,如果两个引用指向的不是同一个对象,那么==就不成立,即便两个引用的内容是一样的。因此,结果就会出现false。 这是非常有趣的地方。如果你查看Integer.java类,你会找到IntegerCache.java这个内部私有类,它为-128到127之间的所有整数对象提供缓存。 这个东西为那些数值比较小的整数提供内部缓存,当进行如 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览