繁体   English   中英

java 将 object 添加到列表中,是否创建了新的 object?

[英]java add object into list, is new object created?

假设我们有一个 object,我们将它添加到 ArrayList 中。 java 是新建一个 object 并添加到列表中,还是使用我们传入的相同 object 并放入 object?

它使用现有的 object,实际上它使用它的参考,参考放在列表中。 如果您在列表之外的另一个变量中保留引用,您可以对其进行编辑,并且列表内部的值也会发生变化。

public static void main(String[] args) {
    List<StringBuilder> list = new ArrayList<>();
    StringBuilder str1 = new StringBuilder("foo");
    StringBuilder str2 = new StringBuilder("bar");

    list.add(str1);
    list.add(str2);

    str1.append(" baz");

    System.out.println(str1);
    System.out.println(list);
}

这个代码块会让你知道这一点,因为这是 output

foo baz
[foo baz, bar]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM