当数组作函数的参数时
1.参数传基本数据类型
public class Test {
public static void main(String[] args) {
int num=0;
func(num);
System.out.println("num = " + num);
}
public static void func(int x){
x=10;
System.out.println("x = "+x);
}
}
结果是
可以看出func方法中修改形参x的值,不影响实参的num值
2.参数传数组类型(引用数据类型)
public static void main(String[] args) {
int[] arr = {1,2,3};
func(arr);
System.out.println("arr[0] = "+arr[0]);
}
public static void func(int[] a){
a[0] = 10;
System.out.println("a[0] = "+a[0]);
}
实验结果
可以发现在func方法内部修改数组的内容,方法外部的数组内容也会发生改变。这是因为数组是引用类型,按照引用类型来进行传递,是可以修改其中存放的内容的。
我们也可以知道,所谓“引用”的本质只是存了一个地址
java将数组设定为引用类型,这样的话后续要进行数组参数传参,其实只是将数组的地址传到函数的形参中。这样可以避免对整个数组的拷贝。