因为在自动包装时对于从–128到127之间的值,它们被包装为Integer对象后,会存在内存中被重用,而其它的值,被包装后的Integer对象并不会被重用,即相当于每次包装时都新建一个Integer对象。- public static void main(String args[])
- {
- Integer i1 = 127;
- Integer i2 = 127;
- System.out.println(i1==i2);
- i1=128;
- i2=128;
- System.out.println(i1==i2);
- }
- /* Output:
- * true
- * false
- */
复制代码 试试看,你就知道了。其实i1,i2是同一个对象。
i3,i4就不是。
你可以验证下我说的规则。 |