我们可以在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]);
就我而言,调整数组大小是不可能的。
要了解代码为什么起作用,您需要了解数组是引用类型。arr持有对实际数组的引用,如下所示:
arr
holds points to arr ----------> reference -----------> array object
在这一行:
arr=new int[2];
最终,您对数组对象不做任何事情。您基本上是在说:
嘿arr。我不希望您再保留 该 参考。放开并保持 该 引用(这是一个长度为2的数组)!
“那么长度为1的原始数组对象会发生什么?” 你问。这是GC到位的地方。在某个时候,将收集没有引用指向的对象。