我正在做作业,但我觉得这里有问题:
public static void test(int[] a){
for(int i = 0; i < a.length;i++){
a[i] = i;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] ints = {1,1,3,3,1,1,2,2,34,4,5,56};
test(ints);
for(int i = 0; i < ints.length;i++){
System.out.print(ints[i] + " ");
}
}
在这种情况下,系统将打印出来:0 1 2 3 4 5 6 7 8 9 10 11
但是当我将测试方法更改为
时public static void test(int[] a){
int [] a2 = {2,2,2,2,2,1,2,2,34,4,5,56};
a = a2;
}
主要方法系统将打印:1 1 3 3 1 1 2 2 34 4 5 56
看起来这个数组似乎没有改变。为什么会这样?我知道也许这是一种叫做值传递或引用的东西。但我仍然对此感到困惑。