1

我很好奇java中的对象引用假设我们有一个Person对象

Person object = new Person("Joe");

我把它放在一个ArrayList<Person>

ArrayList<Person> person_collection = new ArrayList<Person>();
person_collection.add(object);

我再次创建一个新的集合Person,然后复制的项目person_collection

ArrayList<Person> collection = new ArrayList<Person>(person_collection);

如果我从collection

Person p = collection.get(i);

p参考person_collection 吗??

4

2 回答 2

1

在这种情况下,p在初始化步骤中至少包含 的所有元素person_collection

因此,当您直接迭代这个新创建的集合时,您将获得与Person初始集合中包含的相同的指向元素。

顺便说一句,由于 Java 从不使用按引用传递但始终使用按值传递方法,因此引用本身并不相同,但这并不妨碍它们指向真正相同的对象。

于 2012-11-07T01:00:34.050 回答
0

是的, Person "object" 变量引用将在 Person "p" variable 中返回。

person_collection 和 collection 将引用 2 个包含指向 p 的对象的不同集合。

于 2012-11-07T01:01:10.883 回答