我想知道声明后是否修复了Java数组。当我们这样做时:
int a[10];
然后我们可以这样做:
a = new int [100];
我不确定第一个语句是否已经分配了一些内存,第二个语句是否分配了一大块内存并重新分配并覆盖了之前的引用。
答案 0 :(得分:9)
答案 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);