Integer 与 int 中的 ==

 

public class IntegerTest {
    public  static void  main(String args[]){

        /**
         *   int == 比较大小
         */
        int p1 = 100;
        int p2 = 100;
        System.out.println(p1==p2);//true

        /**
         *  integer == 比较地址
         */
        Integer p3 = new Integer(100);
        Integer p4 = new Integer(100);
        System.out.println(p3==p4);//false

        /**
         *  integer  int == 会先进行 装包
         */
        Integer p5 = 10000;
        int p6 = 10000;
        System.out.println(p5==p6);//true

        /**
         *  Integer在 直接赋值时(如:Integer i= 100),实际上是调用Integer.valueOf(),
         *  而Integer.valueOf() 内部会对(-127~128)范围内的数据做缓存,范围内的地址相同,地址外不同
         *  所以   
         *          p7==p8 为 true
         *          p9==p10 为 false
         */
        Integer p7 = 100;
        Integer p8 = 100;
        System.out.println(p7==p8);// true
        Integer p9 = 10000;
        Integer p10 = 10000;
        System.out.println(p9==p10);//false
    }
}

 

posted @ 2019-02-26 11:14  千彧  阅读(285)  评论(0编辑  收藏  举报