看到有一道这样的题目:
public class InterviewTest {
@Test
public void Test1(){
Object o1 = true?new Integer(1):new Double(2.0); //(这里会有一个强制类型提升),在编译的时候两者都会统一
System.out.println(o1);//1.0
}
@Test
public void Test2(){
Object o2;
if(true){
o2 = new Integer(1);
}
else{
o2 = new Double(2.0);
}
System.out.println(o2);//1
}
比较一下o1和o2的输出结果,因为java中重写了包装类里的toString()方法,打印number包装类的对象时,会直接打印数字。
o1变成1.0,是因为有一个强制类型提升。