Java方法修改传入的数组但无法修改传入的值(int,Integer,int[],Integer[]都不一样!)
**** 解释全在注释里,毫无废话,总结分享给大家:****
public class Main {
public static void main(String[] args) {
Integer i = 0;//i指向0属性对象
int[] array = {1,2,3};//array指向int[]
System.out.println(change(i));
System.out.println(i);
System.out.println(Arrays.toString(change(array)));
System.out.println(Arrays.toString(array));
}
}
private static int change(Integer a) {
//a也指向0属性对象
a = 5;//a指向属性为5的新对象,但是没有改变i指向的对象
return a;
//
}
private static int[] change(int[] arr){
//arr也指向array指向的int[]
arr[0] = 9;//int[0]存储的值变为9,1不复存在
//但是!如果是Integer数组,Integer[0]指向存储9的空间,1那个空间存在但没人指向他了
return arr;
}