Java 中的奇怪整数框
我刚刚看到类似这样的代码:
public class Scratch
{
public static void main(String[] args)
{
Integer a = 1000, b = 1000;
System.out.println(a == b);
Integer c = 100, d = 100;
System.out.println(c == d);
}
}
运行后,此代码块将打印出来:
false
true
我理解为什么第一个是:因为这两个对象是独立的对象,所以比较引用。但是我不明白,为什么第二个语句会返回?当整数的值在一定范围内时,是否有一些奇怪的自动装箱规则?这是怎么回事?false
==
true