我想“删除”数组中的某些元素,当我将它们设置为null时,我尝试打印时没有显示这些元素,它们是否被垃圾收集器删除或者println方法只是忽略空值?例如:
this.E = new String[3];
E[0]="blue";
E[1]="red";
E[1]="gray";
this.E[0] = null;
for(int i = 0 ; i < E.length ; i++)
System.out.println(E[i]);
那段代码只输出红色和灰色,所以蓝色是内存的dellocated,或者null值被忽略,因为它不代表任何东西?
答案 0 :(得分:1)
它也取决于其他线程。如果任何活动线程引用了删除的对象,则无法进行垃圾回收
答案 1 :(得分:1)
值保留在内存中,GC需要取消定位整个数组以执行您想要的操作