由void方法传递的Java数组

时间:2017-03-30 12:00:15

标签: java

我正在做作业,但我觉得这里有问题:

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
    看起来这个数组似乎没有改变。为什么会这样?我知道也许这是一种叫做值传递或引用的东西。但我仍然对此感到困惑。

0 个答案:

没有答案