List对象是否通过引用传递?

时间:2012-07-09 14:23:25

标签: java list

  

可能重复:
  Is Java pass-by-reference?

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

5 个答案:

答案 0 :(得分:27)

  

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

  

List对象是否通过引用传递?

参考价值将通过

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

<强>解释

当您致电updateList(someOtherList);时,作为参考的someOtherList的值将被复制到names(方法中的另一个引用,逐位),所以现在它们都指的是内存中的实例,因此它会改变


查看

答案 1 :(得分:6)

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

答案 2 :(得分:5)

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

java is pass by value, and for objects this means the reference is passed by value

答案 3 :(得分:0)

是的,因为您只需将ArrayList - 对象的引用传递给Object

答案 4 :(得分:-3)

Does the List object passed by reference?

不,Java使用pass by value而不是pass by reference。它做了什么,它传递了对象引用内存地址表示的副本,所以当你传递一个列表时,你会获得不同的引用,但指向相同的内存。