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中,所有的原语和引用都是按值传递的。在您的例子中,您有一个对列表的引用(而不是列表本身),对它的引用将通过值传递。当传递原语时会发生什么?嗯,这不是通过引用传递的意思吗?