声明后,Java中的数组大小是固定的吗?
我想知道声明后Java数组是否已修复。 当我们这样做时:
int a[10];
然后我们可以这样做:
a = new int [100];
我不确定第一个语句是否已经分配了一些内存,第二个语句是否分配了一大块内存并重新分配并覆盖了以前的引用。
是的:
创建数组时,将建立数组的长度。 创建后,其长度是固定的。
从这里开始 。
另外,在您的问题中第一个场景: int a[10]
在语法上是不正确的。
第二个语句分配一个新的内存块,之前的引用最终将被垃圾回收。
您可以使用java调试器自己查看。 您将注意到在第二个语句执行后,将指向不同的位置。
祝你的硬件好运
数组具有固定长度,在创建时确定。 如果您想要一个具有可变长度的数据结构,请查看ArrayList或LinkedList类。
数组具有固定的长度,但如果你想要数组元素并增加数组大小,那么下面的代码可能会有所帮助
private Object [] myStore = new Object [10];
现在如果你想要增加数组大小,通常你必须创建另一个具有其他大小的数组并通过循环遍历第一个数组再次插入所有元素,但是数组类提供了可能有用的inbuild方法
myStore = Arrays.copyOf(myStore,myStore.length * 2);