Java 数组-通过引用调用
在java中将数组传递给函数,然后将其分配给新数组时,我得到的是相同的旧数组Java 数组-通过引用调用,java,arrays,Java,Arrays,在java中将数组传递给函数,然后将其分配给新数组时,我得到的是相同的旧数组 public static void main(String[] args) { int[] arr1 = { 1, 2, 3, }; changes(arr1); for (int val : arr1) { System.out.println(val); } } private static void changes
public static void main(String[] args) {
int[] arr1 = { 1, 2, 3, };
changes(arr1);
for (int val : arr1) {
System.out.println(val);
}
}
private static void changes(int[] arr1) {
int[] arr2 = { 7, 8, 9 };
arr1 = arr2;
}
当传递数组处理传递对该数组的引用时,为什么会这样?因为您在本地修改对arr1的引用,所以无法修改调用方的引用。改变
arr1 = arr2;
到
再看看:Java是一种传递值语言。对象的值是对该对象的引用。这包括阵列。
System.arraycopy(arr2, 0, arr1, 0, arr2.length);