整数缓冲区

java预先创建了256个常用的整数包装类型对象。

在实际应用当中,对已创建的对象进行复用。

Integer缓冲区范围:-128 -127;共计256个数

 public static void main(String[] args) {
        //面试题1,下面的输出结果为true还是为flase?
        // 答:integer1和integer2在栈空间,而它们的值存在堆空间;对比时比的是integer1和integer2在栈空间的地址,所以结果为false
        Integer integer1=new Integer(100);
        Integer integer2=new Integer(100);
        System.out.println(integer1==integer2);

        //面试题2,下面的输出结果为true还是为flase?
        // 答:integer3和integer4都用了自动装箱的方式,自动装箱为Integer.valueOf方法,而Integer缓冲区的范围为-128-127之间,
        // 3和4定义的值为100,在这范围内,所以返回对象存储的地址一致,结果为true。
        Integer integer3=Integer.valueOf(100);//自动装箱Integer.valueOf
        Integer integer4=Integer.valueOf(100);
        System.out.println(integer3==integer4);


        //面试题3,下面的输出结果为true还是为flase?
        // 答:integer4和integer5都用了自动装箱的方式,自动装箱为Integer.valueOf方法,而Integer缓冲区的范围为-128-127之间,
        // 3和4定义的值为200,不在这范围内,所以返回对象存储的地址不一致,需要在堆中开出一个新的空间(new  Integer),所以结果为flase。
        Integer integer5=Integer.valueOf(200);//自动装箱Integer.valueOf
        Integer integer6=Integer.valueOf(200);
        System.out.println(integer5==integer6);


    }
}

输出结果:

image-20240525114724572