?
? 自动装箱:基本数据类型转换成包装类
? 自动拆箱: 包装类转换成基本数据类型
public class test03 {
@Test
public void test001(){
Object o1=true?new Integer(1):new Double(1.0);
System.out.println(o1);
Object o2;
if(true){
o2=new Integer(1);
}
else{
o2=new Double(1.0);
}
System.out.println(o2);
}
}
o1会输出1.0 o2会输出1。三元运算符的特性决定 (表达式2和表达式3的数据类型是一致的)所以Int数据类型自动类型提升为Double
@Test
public void test3() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false
//Integer内部定义了IntegerCache结构,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;//相当于new了一个Integer对象
System.out.println(x == y);//false
}
原文:https://www.cnblogs.com/gengBlog/p/15310629.html