直接赋值时,都会自动调用 valueOf 方法,而 12 是在 -128~127 之间的,所以缓存中有其实例,两个引用同一个对象。而 200 超出了这个范围,两个对象都是 new 的新对象,两个对象不是同一个 自动拆箱有个很典型的用法就是在进行运算的时候,因为对象时不能直接进行运算的,而是要转化为基本数据类型后才能进行加减乘除。 自动拆箱导致的问题 如果不接收返回值的话,x2累加后仍为1