天天看點

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
    }
}
      

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
    }
}