Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j); // false
Integer m = 1;
Integer n = 1;
System.out.println(m == n); // true
// Integer 内部定义了 IntegerCache 结构,IntegerCache中定义了 Integer[],
// 保存了从 -128 ~ 127 范围的整数。如果使用自动装箱的方式,给 Integer 赋值的范围在 -128 ~ 127 内时,
// 可以直接使用数组中的元素,不用再去 new 了
Integer x = 128; // 相当于 new Integer(128)
Integer y = 128;
System.out.println(x == y); // false
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1); // 1.0
// 在编译阶段就会进行自动类型提升
Object o2;
if (true) {
o2 = new Integer(1);
} else {
o2 = new Double(2.0);
}
System.out.println(o2); // 1