我一直在阅读有关Java缓存的课程,但我不太确定为什么这段代码可以工作。
Integer x = new Integer(2);
Integer y = new Integer(2);
assert x != y;
assert x.intValue() == y.intValue();
++x;
assert x != y;
assert x.intValue() != y.intValue();
++y;
assert x == y;
assert x.intValue() == y.intValue();
我理解最初x和y不相等是因为它们引用了不同的对象,但为什么在++之后它们会变得相等呢?