当前位置: 移动技术网 > IT编程>开发语言>Java > 工作随笔—integer对象比较

工作随笔—integer对象比较

2019年03月06日  | 移动技术网IT编程  | 我要评论

问题:对于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这个范围内是直接取值,不是创建值,所以值总是相等;当时超过了这个范围,创建了新的地址,当然就不相等了。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网