x 和 y 确实不相同。
Integer 这样的类是相应基本类型的 wrapper class,它和基本类型可发生自动转换。
y = x 这句让 y 和 x 引用同一个对象,这时它们是相同的。
但下一句 x++,自增运算符只用于基本类型,Integer 是没有++方法的。这时就会发生自动转换—— Integer 对象 unbox 出 int 值,自增后再 box 回 Integer 对象——这之后 x 就是另一个 Integer 对象了,不再和 y 相同。
所以关键是 x++ 这一句让 x 的值改变了。