java Integer判断相等==和equals

java中Integer和int类型操作时,会自动拆箱装箱,我们操作string相等判断的时候会注意==和equals的区别,但是在做Integer的时候,就有人不注意了。不确定的,自己写个测试代码,测试Integer a3=3 和Integer b3=3 时,a3==b3是true,就认为Integer可以用==判断相等。这个测试其实是不完全的。

因为Integer ah=128 和Integer bh=128 就不==。这个就跟java的内存有关系了。

如果整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象,所以a3==b3的结果是true,而ah==bh的结果是false。


详细对源码的解析请参照博客  http://blog.csdn.net/jackfrued/article/details/44921941

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值