Java中的自动拆箱装箱,包装类中的缓存,类型之间的转化例子

public static void main(String[] args) {
        Integer a = 1;
        Integer b = 2;
        Integer c = 3;
        Integer d = 3;
        Integer e = 321;
        Integer f = 321;
        Long g = 3L;
        Long h = 2L;
        // Integer 内部-128 到 127 之间数字的缓存机制
        System.out.println(c == d); //true
        // 超出了Integer 内部缓存机制
        System.out.println(e == f);//false
        // a+b 值为基本类型,基本类型和包装类型==比较,
        // 包装类型会自动拆箱,成为基本类型
        System.out.println(c == (a + b));//true
        // true
        System.out.println(c.equals(a + b));
        //Long类型拆箱为基础类型
        System.out.println(g == (a + b));//true
        //equals比较,会先比较类型,g为Long a+b为基础int
        System.out.println(g.equals(a + b));//false
        //a+h向上转型,为Long
        System.out.println(g.equals(a + h));//true

    }

 

你可能感兴趣的:(java)