关于int和Integer的==

    public static void main(String[] args) {
        Integer a = 50;
        Integer b = 50;
        Integer d = 128;
        Integer c = 128;
        int e = 128;
        int f = 128;

        System.out.println(a==b);//true
        System.out.println(c==d);//false
        System.out.println(e==f);//true
        System.out.println(a.equals(b));//true
        System.out.println(c.equals(d));//true
    }

Integer的值为-128~127时 == 成立

因为Integer的==比较的是两个实例的内存地址 -128~127是存在常量池中 所以地址相等

超过127时两个值都需要重新new对象 此时的地址就不相等了

猜你喜欢

转载自blog.csdn.net/yilia_jia/article/details/82142829