工作随笔—integer对象比较
程序员文章站
2022-04-08 19:23:42
问题:对于integer对象,当比较2=2的时候,返回的值是true还是false?当比较2000=2000的时候,返回的值是true还是false? 回答:当比较2=2的时候,返回的值是true;当比较2000=2000的时候,返回的值是false。 理由:equal比较是两个值的大小是否能够相等 ......
问题:对于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这个范围内是直接取值,不是创建值,所以值总是相等;当时超过了这个范围,创建了新的地址,当然就不相等了。
上一篇: springboot 项目中读取资源文件内容 如图片、文档文件
下一篇: WPF实现三星手机充电界面