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

参考链接

https://www.bilibili.com/video/BV1Kb411W75N?p=309

posted on 2021-11-03 21:05  beyondx  阅读(73)  评论(0编辑  收藏  举报

导航