Java面试题(包装类)

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
原文地址:https://www.cnblogs.com/lan1974/p/13937255.html