Java包装类面试题
Java包装类面试题
1. int, float类型要统一
package com.beyondx.java;
import org.junit.test;
public class InterviewTest {
@Test
public void test1() {
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1); // 1.0
}
}
int, float在一块, 有类型提升
编译的时候, 要求这2个类型, 一致
2. int, float类型不用统一
package com.beyondx.java;
import org.junit.test;
public class InterviewTest {
@Test
public void test2() {
Object o2;
if (true) {
o2 = new Integer(1);
} else {
o2 = new Double(2.0);
}
System.out.println(o2); // 1
}
}
这个没有要求 这2个需要统一类型
有时间研究一下, 为什么
3. Integer源码考查
package com.beyondx.java;
import org.junit.Test;
public class InterviewTest {
@Test
public void test3() {
// 比的是地址
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j); // false, 比的是地址
// 自动装箱, 不是 new 的方式
Integer m = 1;
Integer n = 1;
System.out.println(m == n); // true, 自动装箱, 不是 new的方式
Integer x = 128;
Integer y = 128;
System.out.println(x == y); // false
}
}
参考链接