Java数组传递有两种方式:作为对象传递:数组实际是对象,传递副本,不影响原始数组。作为引用传递:传递数组引用,修改传递的引用会影响原始数组,对调用它的方法中的数组修改也会影响原始数组。

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(原始数组已修改)
}










