1,
Integer i = 100;
Integer j = 100;
System.out.println(i==j);
输出 true 还是 false?2,
Integer i = 1000;
Integer j = 1000;
System.out.println(i==j);
输出 true 还是 false?3,考虑一下1和2为什么结果不同?
Integer i = 100;
Integer j = 100;
System.out.println(i==j);
输出 true 还是 false?2,
Integer i = 1000;
Integer j = 1000;
System.out.println(i==j);
输出 true 还是 false?3,考虑一下1和2为什么结果不同?
.......对于如下范围的简单数据类型:
boolean类型的值
所有byte类型的值
在-128~127之间的short类型的值
在-128~127之间的int类型的值
在\u0000~\u007F之间的char类型的值 在进行自动装箱的时候,将会首先检查内存中是否已经有使用自动装箱产生的具有相同值的对象,。
如果已经有一个“值”相同的对象产生,那么并不会产生新的对象。
2.false
3. Integer i = 100;
//1.这是个装箱的过程
//2.Integer 是一个类而不是内置类型
Integer j = 100;
System.out.println(i==j);
//3.i==j 是二个对象在内存中地址的比较,不是值的比较
//4.i,j会在内存分配一小块区域,并且i,j的范围在-128~127内在内存中是会被重用的。
//5.为什么在-128~127范围内会在内存中重用?为什么不是-256~255甚至更大?java这样设计有什么好处?留给高手回答