java中的方法用数组做引用传递的时候,是叫引用传递,会改变什么,不会改变什么呢?
方法的引用传递,其实地址值是不会被改变的,可以改变堆里面的元素值或者字段值。
举个栗子:
···
public class BiaoTest02 {
public static int[] resove(int[] arr){
int[] newarr = new int[arr.length];
for (int i = newarr.length - 1; i >= 0 ; i--) {
newarr[newarr.length - 1 - i] = arr[i];
}
//print(newarr);
System.out.println("1111---"+arr);
arr=newarr;
System.out.println("2----"+arr);
arr[3] = 10;
print(arr);
return arr;
}
public static void print(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+", ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,5,4,6};
int[] ne = resove(arr);
print(arr);
System.out.println("3---"+arr);
System.out.println(ne);
}
}
···
这个栗子可以用来证明引用传递的地址值是不会改变的。