@Integer自动装箱超出赋值范围
Integer自动装箱
输出结果
Integer源代码
结论
1、i1和i2的自动装箱在Integer的取值范围之内,符合if括号里面的条件,就
return IntegerCache.cache[i + (-IntegerCache.low)];
返回的都是cache数组里的对象。
所以 i1==i2 的输出为true。
2、i3和i4的取值为200,大于127,那么就不符合if 的条件,直接
return new Integer(i);
i3和i4就各自返回新的Integer对象,新的Integer对象值会不一样。
所以 i3==i4 的输出为false。