我们可以在java中调整数组大小吗?

时间:2016-11-22 07:37:19

标签: java arrays

我们可以在java中调整数组的大小吗?如果没有,请解释一下:

    int arr[] = new int[1];
    arr[0]=-10;
    //arr[1]=1;
    arr=new int[2];  //Explain this
    arr[0]=-1;
    arr[1]=1;
    System.out.println(arr[0]+" "+arr[1]);

1 个答案:

答案 0 :(得分:3)

就我而言,调整阵列大小是不可能的。

要理解代码的工作原理,您需要了解数组是引用类型。 arr包含对实际数组的引用,如下所示:

      holds                points to
arr ----------> reference -----------> array object

在这一行:

arr=new int[2];

你最后没有对数组对象做任何事情。你基本上是在说:

  

arr。我不想让你再拿那个引用。放开并按住引用(这是一个长度为2的数组)!

“长度为1的原始数组对象会发生什么?”您询问。这就是GC到位的地方。在某些时候,会收集没有引用指向的对象。