关于java:List对象是否通过引用传递?

Does a List object get passed by reference?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Is Java pass-by-reference?

是否通过引用传递List对象?换句话说,如果我将一个ArrayList (java.util.ArrayList)对象传递给一个类,当我更改它时,它会自动更新吗?


in other word: If I pass an ArrayList (java.util.ArrayList) object to a class, will it be automatically updated when I change it?

是的

Does the List object passed by reference?

引用的值将被传递

1
2
3
public updateList(List<String> names){
 //..
}

解释

当调用updateList(someOtherList);时,作为引用的someOtherList的值将复制到names中(方法中的另一个引用,逐位),因此现在它们都引用内存中的同一个实例,因此它将发生变化。

  • Java是"通过引用"还是"按值传递"?

是的,传递给方法的List是通过引用传递的。在方法内部添加到List中的任何对象在方法返回后仍将位于List中。


如果您在一个方法中添加到一个列表,它在第一个方法中的原始引用也将包含新项。

Java是按值传递的,对于对象,这意味着引用是通过值传递的。


是的,因为你只是把ArrayList对象的引用传递给你的Object


Does the List object passed by reference?

不,Java使用EDCOX1×9×NOTEXDOX1×10 }。它通过对象引用内存地址表示的副本,因此,当您通过列表时,得到不同的引用,但指向相同的内存。