stackoverflow中有很多关于按值传递和通过引用传递的讨论.但是我想知道以下场景中发生了什么?这个页面说java是按值传递的.Java是"通过引用传递"还是"传递价值"?.
如果是以下代码,则从removeElement方法中删除该元素,当我打印列表时,它将从列表中删除第5个元素.
public class Load {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.addAll(Arrays.asList(1,1,2,3,5,5,13,21));
removeElement(list);
System.out.println(list);
}
public static void removeElement(List<Integer> list){
list.remove(5);//removes element at index 5
}
}
Run Code Online (Sandbox Code Playgroud)
该程序的输出是 [1, 1, 2, 3, 5, 13, 21].
有人可以解释这是如何通过价值而不是通过参考传递?
java ×1