import org.junit.Test;
//关于包装类的经典面试题:
public class BaoZhuangLeiMianShiTi {
@Test
public void test1() {
Object o1 =true ? new Integer(1):new Double(2.0);
System.out.println(o1); //1.0 原因:三元运算符有自动类型提升,默认将int类型提升至double类型
}
@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 原因:==比较的是地址值,不是同一个对象,所以返回false
Integer m =1;
Integer n =1;
System.out.println(m == n); //true
//在Integer中有个缓存类IntegerCache,其中存放的有缓存数组,范围为[-128,127],一般是从缓存数组中寻找,
//如果找不到就新new一个,new出来的数值就不是同一个对象地址了
Integer x =128;
Integer y =128;
System.out.println(x == y); //false
}
}
关于java中包装类的面试题
最新推荐文章于 2024-05-23 12:27:25 发布