装箱、拆箱面试题

package com.oop.Demo11;

public class Demo02 {
    public static void main(String[] args) {
        //面试题
        Integer integer1 = new Integer (100);
        Integer integer2 = new Integer (100);
        System.out.println (integer1==integer2);//false      此时比的是栈中integer1和integer2的地址
        
        //Integer integer3=100;   //自动装箱
        Integer integer3=Integer.valueOf (100);
        //Integer integer3=100; 自动装箱操作Integer integer3=Integer.valueOf (100);
        //public static Integer valueOf(int i) {
        //        if (i >= IntegerCache.low && i <= IntegerCache.high)
        //            return IntegerCache.cache[i + (-IntegerCache.low)];
        //        return new Integer(i);
        //    }
        //堆空间有一个Cache数组[-127~128],把这个数据的地址赋给integer3
        //超出数据return new Integer(i);
        //static final int low = -128;
        //static final int high;
        //int h = 127;
        //high = h;
        Integer integer4=100;
        System.out.println (integer3==integer4);

        Integer integer5=200;   //自动装箱
        Integer integer6=200;
        System.out.println (integer5==integer6);


    }
}

//运行结果

false
true
false

Process finished with exit code 0
posted @ 2020-11-30 09:19  柠檬情  阅读(97)  评论(0)    收藏  举报