[英]Adding the same object to List in Java
为什么当我将相同的对象添加到列表中时:
Integer a = new Integer(0);
testList.add(a);
a += 1;
testList.add(a);
第一个没有改变吗?
因为Integer
是不可变的。 修改a
引用的值时,您将创建一个新对象并更新对该对象的引用。 testList
包含对两个对象的引用。
由于Integer
包装器类在Java中是不可变的。 不仅Integer
,所有包装器类和String
都是不可变的。
a
是指向对象的参考。 当您运行a += 1
,它将重新分配a
来引用具有不同值的新Integer对象。
您从未修改原始对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.