一尘不染

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

java

我们可以在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]);

阅读 547

收藏
2020-12-03

共1个答案

一尘不染

就我而言,调整数组大小是不可能的。

要了解代码为什么起作用,您需要了解数组是引用类型。arr持有对实际数组的引用,如下所示:

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

在这一行:

arr=new int[2];

最终,您对数组对象不做任何事情。您基本上是在说:

arr。我不希望您再保留 参考。放开并保持 引用(这是一个长度为2的数组)!

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

2020-12-03