java在不同的数组中存储相同的对象
对于以下代码:
User myUser = new User();
User[] array1 = new User[10];
User[] array2 = new User[10];
array1[5] = myUser;
array2[5] = myUser;
对象myUser存储了两次,还是每个对象上只存储了对象的地址
如果我开始摆弄变量,这是否仍然成立,比如:
temp = myUser;
array2[4] = temp;
另外,如果我在一个数组中对myUser进行了更改,它会对另一个数组进行更改吗
编辑:最后一个问题:如何通过值而不是引用来存储它
# 1 楼答案
是的,数组中只存储对
User
对象的引用。每个参考点都指向同一个对象。通过任一数组修改对象将修改同一个对象这同样适用于将引用存储在变量中,如第二个示例所示
只有primitive types按值存储,例如
int
、boolean
、char
。请注意,它们也有相应的引用类型,例如,对于int
,您有Integer