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