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
    }
}
原文地址:https://www.cnblogs.com/the-wang/p/10436067.html