美文网首页
Java Integer比较

Java Integer比较

作者: 一颗北上广的心 | 来源:发表于2017-09-06 14:02 被阅读0次
            int num = 1234;
            Integer num_integer = new Integer(1234);
            Integer num_valueOf = Integer.valueOf(1234);
    
            System.out.println(num == num_integer);
            System.out.println(num == num_valueOf);
            System.out.println(num_integer == num_valueOf);
            System.out.println(num_integer.equals(num_valueOf));
    
    true: 拆箱后,比较int,数值相同
    true: 拆箱后,比较int,数值相同
    false: 对象比较,地址不同
    true: Integer.equals比较相同
    
            Integer num_a = new Integer(1234);
            Integer num_b = new Integer(1234);
    
            System.out.println(num_a == num_b);
            System.out.println(num_a.equals(num_b));
    
    false: 对象比较,地址不同
    true: Integer.equals比较相同
    
            Integer num_a = Integer.valueOf(1234);
            Integer num_b = Integer.valueOf(1234);
    
            System.out.println(num_a == num_b);
            System.out.println(num_a.equals(num_b));
    
    false: 对象比较,地址不同
    true: Integer.equals比较相同
    
            Integer num_a = Integer.valueOf(123);
            Integer num_b = Integer.valueOf(123);
    
            System.out.println(num_a == num_b);
            System.out.println(num_a.equals(num_b));
    
    true: -128~ 127之间的Integer.valueOf会使用缓存,所以是同一对象 
    true: Integer.equals比较相同
    

    结论: Integer比较数值是否相等,建议使用Integer.intValue() 或者 equals()方法

    相关文章

      网友评论

          本文标题:Java Integer比较

          本文链接:https://www.haomeiwen.com/subject/ioamjxtx.html