按值传递(Pass by Value):
传递数组的副本,对副本的修改不会影响原始数组。
public class ArrayExample {
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5};
printArray(myArray);
}
}
按引用传递(Pass by Reference):
传递数组的引用,对数组的修改会影响原始数组。
public class ArrayExample {
public static void modifyArray(int[] arr) {
arr = 100;
}
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5};
System.out.println("Before modification: " + myArray);
modifyArray(myArray);
System.out.println("After modification: " + myArray);
}
}
在上述示例中,`printArray` 方法按值传递数组,所以对它的修改不会影响 `main` 方法中的 `myArray`。而 `modifyArray` 方法按引用传递数组,所以对它的修改会影响 `main` 方法中的 `myArray`。
需要注意的是,Java中传递数组时传递的是数组的引用,而不是数组的副本。因此,如果方法需要修改传入的数组,应该使用按引用传递的方式。如果方法不需要修改数组,可以使用按值传递的方式以避免意外的副作用