如果我有一个 ArrayList,并向其中添加了一个对象,然后修改了该对象,那么此更改会反映在 ArrayList 中吗?或者当我将对象添加到 ArrayList 时,Java 创建一个副本并将其添加到 ArrayList 中?
如果我将此对象的引用更改为 null 会怎样?这是否意味着 ArrayList 中的对象现在也为 null?
此更改会反映在 ArrayList 中吗?
是的,自从您添加了参考到列表中的对象。您添加的引用仍将指向同一个对象(您已修改)。
或者当我将对象添加到 ArrayList 时,Java 创建一个副本并将其添加到 ArrayList 中?
不,它不会复制该对象。 (它将复制对该对象的引用。)
如果我将此对象的引用更改为 null 会怎样?这是否意味着 ArrayList 中的对象现在也为 null?
不,因为原始参考文献的内容是copied添加到列表时。 (请记住,这是参考被复制的,而不是对象。)
示范:
StringBuffer sb = new StringBuffer("foo");
List<StringBuffer> list = new ArrayList<StringBuffer>();
list.add(sb);
System.out.println(list); // prints [foo]
sb.append("bar");
System.out.println(list); // prints [foobar]
sb = null;
System.out.println(list); // still prints [foobar]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)