包装类常见面试题
InterviewTest类
public class InterviewTest {
@Test
public void test1(){
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);//1.0 int型和浮点型有一个提升,让这两个类型统一
}
@Test
public void test2(){
Object o2;
if (true)
o2 = new Integer(1);
else
o2 = new Double(2.0);
System.out.println(o2);// 1
}
@Test
public void test3() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false 两个对象地址不同
//Integer内部定义了InterCache结构,IntegerCache中定义了Integer[],
//保存了从-128-127范围的整数,如果我们使用自动装箱的方式,给Integer赋值的范围在-128-127之间
//可以直接使用数组中的元素,不用再去new了
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true
Integer x = 128;//相当于new了一个Integer对象
Integer y = 128;
System.out.println(x == y);//false Integer范围在-128-127,所以超出范围要新建对象
}
}