特殊情况:当这个整数在一个byte的范围内时,它就不在重新创建了.直接使用.
Integer x = 12;
04. Integer y = 12;
05. sop(y == x);//true
06. x += 1;
07. sop(x + "...." + y);
08. y += 1;
09. sop(x + "...." + y);
10. sop(y == x);
首先Integer x = 12;Integer y = 12; 都是在byte范围内,所以x,y指向的是同一个对象。之后x+1,y+1;这个过程有个自动拆箱,将Integer 转成int型,运算完后在自动装箱成Integer 类型。即为Integer x = 13;Integer y = 13;还是都在byte范围内,所以x,y指向的还是同一个对象。地址值相同。
特殊情况:直接赋值,当这个整数在一个byte的范围内时,它就不在重新创建了.直接使用.
Integer x = 12;
04. Integer y = 12;
05. sop(y == x);//true
06. x += 1;
07. sop(x + "...." + y);
08. y += 1;
09. sop(x + "...." + y);
10. sop(y == x);
首先Integer x = 12;Integer y = 12; 都是在byte范围内,所以x,y指向的是同一个对象。之后x+1,y+1;这个过程有个自动拆箱,将Integer 转成int型,运算完后在自动装箱成Integer 类型。即为Integer x = 13;Integer y = 13;还是都在byte范围内,所以x,y指向的还是同一个对象。地址值相同。