整数缓冲区
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);
}
}
输出结果: