import org.junit.Test;
public class JUnitTest {
@Test
public void testExam() {
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);//1.0, 因为三元运算要求两个数据类型一致,所以在编译的时候,数据类型提升了
Object o2;
if(true) {
o2 = new Integer(1);
} else {
o2 = new Integer(2);
}
System.out.println(o2);//1
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false,因为是地址值
Integer m = 1;
Integer n = 1;
//true IntegerCache中定义了Integer[]数组,包含了-128到127之间的值,
//如果使用自动装箱的方式,给Integer赋值的范围在-128到127范围时,
//可以直接使用数组中的元素,不再去new了,范围之外的还是new了。目的是提高效率。
System.out.println(m == n);
Integer x = 128;
Integer y = 128;
System.out.println(x == y);//false IntegerCache中有-128到127之间的值
}
}