Java 列表对象是否通过引用传递?

Java 列表对象是否通过引用传递?,java,list,Java,List,可能重复: 列表对象是否通过引用传递?换句话说,如果我将ArrayList(java.util.ArrayList)对象传递给一个类,当我更改它时它会自动更新吗 换句话说:如果我将一个ArrayList(java.util.ArrayList)对象传递给一个类,当我更改它时,它会自动更新吗 对 列表对象是否通过引用传递 引用的值将被传递 public updateList(List<String> names){ //.. } 公共更新列表(列表名称){ //.. } 解释

可能重复:

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

换句话说:如果我将一个ArrayList(java.util.ArrayList)对象传递给一个类,当我更改它时,它会自动更新吗

列表对象是否通过引用传递

引用的值将被传递

public updateList(List<String> names){
 //..
}
公共更新列表(列表名称){
//..
}
解释

当您调用
updateList(someOtherList)时
引用的
someOtherList
的值将复制到
名称(方法中的另一个引用,逐位),因此现在它们都引用内存中的同一实例,因此它将更改



是的,因为您只需将
ArrayList
-对象的引用传递给您的
对象
如果您在一个方法中添加到列表中,其在第一个方法中的原始引用也将包含新项


.

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

列表对象是否通过引用传递?


不,Java使用的是
按值传递
而不是
按引用传递
。它所做的是传递对象引用内存地址表示的副本,因此当传递列表时,会得到不同的引用,但指向同一内存

提示:
ArrayList
List
在这方面并不特殊。事实上,在这方面没有什么类是特别的。在Java中,所有的原语和引用都是按值传递的。在您的例子中,您有一个对列表的引用(而不是列表本身),对它的引用将通过值传递。当传递
原语时会发生什么?嗯,这不是通过引用传递的意思吗?