工作随笔—integer对象比较

2019-03-06 07:16:08来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

问题:对于integer对象,当比较2=2的时候,返回的值是true还是false?当比较2000=2000的时候,返回的值是true还是false?

回答:当比较2=2的时候,返回的值是true;当比较2000=2000的时候,返回的值是false。

理由:equal比较是两个值的大小是否能够相等;“=”比较是两个值的地址是否相等,参考integer的API文档,我们可以发现integer内部维护了一个缓存池,当值的范围是-128到127的时候,integer总是到缓存池里面去取值;当超过了这个范围,integer才会去new新的对象。所以在-128到127这个范围内是直接取值,不是创建值,所以值总是相等;当时超过了这个范围,创建了新的地址,当然就不相等了。


原文链接:https://www.cnblogs.com/ZWOLF/p/10470769.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Maven的安装与配置

下一篇:浅析关于java的一些基础问题(上篇)