Java Integer值比较

1585364631
2023-02-20 / 0 评论 / 209 阅读 / 正在检测是否收录...

Java Integer值比较

  Integer i1 = 127;
  Integer i2 = 127;
  System.out.println(i1 == i2);

结果为:true

  Integer i1 = 129;
  Integer i2 = 129;
  System.out.println(i1 == i2);

结果为:false

  Integer i1 = -128;
  Integer i2 = -128;
  System.out.println(i1 == i2);

结果为:true

    public static Integer valueOf(int i) {
        if (i >= -128) && i <= 127))
            return IntegerCache.cache[i + (--128)];
        return new Integer(i);
    }

查看Integer类源代码中,传入的数值如果在-128和127之间,将会进行自动装箱,自动帮我们调用Integer.valueOf(值),所以在-128到127之间的数据,将会直接冲底层数值中取出提前创建好的数据并返回,所以为true,如果装箱的数据不在范围之间,则会创建新的对象,对象地址不相同,所以为false

0

评论 (0)

取消