Integer自动拆装箱

  public static void main(String[] args) {
        Integer a = 127;
        Integer b = 128;

        Integer c = new Integer(127);
        Integer d = new Integer(128);

        Integer e = new Integer(127);
        Integer f = new Integer(128);

        System.out.println(a == c); //false
        System.out.println(c.equals(a));//true

        System.out.println(b == d); // false
        System.out.println(d.equals(b));//true

//        System.out.println(c == e); // false
//        System.out.println(d == f); // false

        System.out.println("------------");

        Integer x = 127;   // Integer.valueOf(127)--- 此处装箱返回了是一个cache缓存中的值
//        Integer y = 128;
//        Integer y = 128 - 1;
        Integer y = 128 - new Integer(1);
        Integer q = 127;
//        Integer w = 128;
//        Integer w = 128 - 1;
        Integer w = 128 - new Integer(1);

//        //此处  127以下的值(127含),此时两个对象型比较时是一致的
//        [-128,127]  Integer 如果使用这个范围内的值的话,不会创建新对象,装箱动作
        System.out.println(x == q);
        System.out.println(y == w);

    }

 

 

 

 

 

 public static void main(String[] args) {


        Integer a = new Integer(127);
        Integer b = new Integer(127);

        Integer c = 127; //装箱动作
        Integer d = 127;


        //TODO
        System.out.println(a == b);//false ,堆上两个不同的实际实例
        System.out.println(a == c);//false
        System.out.println(c == d);// true







        Integer x = new Integer(128);
        Integer y = new Integer(128);

        Integer z = 128;
        Integer v = 128;
        int u = 128 ;

        System.out.println(x == y);
        System.out.println(x == z);
        System.out.println(z == v);
        System.out.println(z == u); //  z.intValue()
        System.out.println(u == z);
详情请看https://baijiahao.baidu.com/s?id=1661390272276736158&wfr=spider&for=pc

    }

posted @ 2020-07-31 16:48  Ricardo-ting  阅读(134)  评论(0)    收藏  举报