首页 > 其他 > 详细

java Integer == 比较的小问题

时间:2014-02-09 15:46:52      阅读:328      评论:0      收藏:0      [点我收藏+]

示例代码:

bubuko.com,布布扣
@Test
    public void testEquals() {
        
        Integer a = 127;
        Integer b = 127;
        
        if(a == b) {
            System.out.println(true);
        } else {
            System.out.println(false);
        }
        
        a = 128;
        b = 128;
        
        if(a == b) {
            System.out.println(true);
        } else {
            System.out.println(false);
        }
        
        //打印结果:
        //true 
        //false
    }
bubuko.com,布布扣

找到的相关解释如下:

因为java在执行包装类的自动装箱功能时,对于-128到127之间的整数被装箱为Interger对象后,该对象会被另外一个对该证书进行自动装箱的操作重复使用,也就是说多次对同一个-128到127范围内的整数进行Integer装箱的操作,使用的都是第一次进行装箱操作时生成的对象。而对于大于127的整数,就会new一个新对象,两个对象使用==比较由于地址不同所以返回false。

java Integer == 比较的小问题

原文:http://www.cnblogs.com/tq03/p/3540831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!