JAVA Objectreference

时间:2014-12-03 10:36:22

标签: java

如果我有一个A类并使用" new"构建一个实例。它的。但是将这个实例添加到2个ArrayLists中,是内存中A的实例是什么?

伪代码:

class A() {String s;}
A a = new A();
List<A> list1 = new ArrayList<A>();
List<A> list2 = new ArrayList<A>();
list1.Add(a);
list2.Add(a);

Freudi

2 个答案:

答案 0 :(得分:1)

不,不是。您只存储对象引用。

在您的代码段中,您创建了三个引用:a,存储在list1中的引用和存储在list2中的引用。所有这三个引用相同的对象,因此如果您修改(通过类A的变异方法),修改将反映到所有三个。

答案 1 :(得分:0)

不,仍然只有一个A实例,两个List实例和两个A实例的引用,a。