声明后,Java中的数组大小是固定的吗?

时间:2011-11-05 15:08:32

标签: java

我想知道声明后是否修复了Java数组。当我们这样做时:

int a[10];

然后我们可以这样做:

a = new int [100];

我不确定第一个语句是否已经分配了一些内存,第二个语句是否分配了一大块内存并重新分配并覆盖了之前的引用。

4 个答案:

答案 0 :(得分:9)

是的:

  

创建数组时建立数组的长度。后   创作,它的长度是固定的。

取自here

此外,在您的问题中,第一个场景:int a[10]在语法上是不正确的。

答案 1 :(得分:2)

第二个语句分配一个新的内存块,之前的引用最终将被垃圾回收。

您可以使用java调试器自己查看。在第二个语句执行后,您会注意到一个将指向另一个位置。

祝你好运H.W。

答案 2 :(得分:1)

数组具有在创建时确定的固定长度。如果您想要一个具有可变长度的数据结构,请查看ArrayList或LinkedList类。

答案 3 :(得分:1)

数组具有固定长度,但如果您希望在此之后增加数组大小:

 private Object[] myStore=new Object[10];

以正常方式,你必须创建另一个具有其他大小的数组,并通过循环遍历第一个数组再次插入所有元素,但是数组类提供了可能有用的inbuild方法

myStore = Arrays.copyOf(myStore, myStore.length*2);