package com.it.work;
//第一道面试题
import org.junit.Test;
public class work1 {
@Test
public void test1(){
Object o = true ? new Integer(1):new Double(2.0);//三元运算符,在编译运算时,首先会将前后条件都提升为一致
//也即int类型1 提升为double类型
System.out.println(o);//输出1.0
Object o1 ;
if (true){
o1 =new Integer(1);
}
else {
o1 =new Double(2.0);
}
System.out.println(o1); //输出1
}
}
第二道面试题
``package com.it.work;
import org.junit.Test;
public class Work2 {
@Test
public void test1 (){
Integer in =new Integer(1);
Integer in1 =new Integer(1);
System.out.println(in==in1);//false 创建了两个对象地址值一定不同
//Interger内部定义了IntergerCache结构,IntergerCache中
//定义了Interger[],保存了从-128~127范围内的整数,如果我们使用
//自动装箱的方式,给Interger赋值的范围你在-128~127范围内时,可以直接
//使用数组内的元素,不用再去new了,目的:提高效率
Integer in2 =2;
Integer in3 =2;
System.out.println(in2==in3);//采用了自动装箱的方法,且
//赋值的范围在数组范围内, 因此两个指向地址值相同
Integer in4 =129;
Integer in5 =129;
System.out.println(in4 ==in5);//采用自动装箱的方式,但由于超出
//数组范围,所以只能采取new的方式去赋值,因此地址值一定不同
}
}