今天受打击了,一同事问了我一个问题,,,我当场就肯定的说:答案 T T啊。。还用的着想?
可是当我把它们Copy运行时,才发现,结果显示的与我预想的不一想。。。
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1==i2);
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3==i4);
后来那同事跟我解释了一下,我觉得挺好,这也是我们很容易忽视的地方,所以贴出来了;
原因是:
在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,超出范围就每次创建