◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
java数组传递有两种方式:作为对象传递:数组实际是对象,传递副本,不影响原始数组。作为引用传递:传递数组引用,修改传递的引用会影响原始数组,对调用它的方法中的数组修改也会影响原始数组。
Java数组作为参数传递
如何传递?
Java数组可以通过两个方式作为参数传递:
详细说明:
立即学习“Java免费学习笔记(深入)”;
作为对象传递
将数组作为对象传递时,创建数组的新副本并将其传递给方法。这意味着对传递的副本所做的任何更改都不会影响原始数组。
代码示例:
public static void printArray(int[] arr) { for (int i : arr) { System.out.print(i + " "); } System.out.println(); } public static void main(String[] args) { int[] arr = {1, 2, 3}; printArray(arr); // 输出:1 2 3 arr[0] = 4; printArray(arr); // 输出:4 2 3(原始数组已修改) }
作为引用传递
将数组的引用传递时,传递的是指向数组在内存中位置的指针。因此,对传递的引用所做的任何更改都会影响原始数组。
代码示例:
public static void changeArray(int[] arr) { arr[0] = 5; } public static void main(String[] args) { int[] arr = {1, 2, 3}; changeArray(arr); printArray(arr); // 输出:5 2 3(原始数组已修改) }
注意:
传递数组的引用时,方法中对数组的修改也会影响调用它的方法。例如:
public static void printAndChangeArray(int[] arr) { printArray(arr); // 输出:1 2 3 arr[0] = 4; } public static void main(String[] args) { int[] arr = {1, 2, 3}; printAndChangeArray(arr); printArray(arr); // 输出:4 2 3(原始数组已修改) }
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。