Java数组销毁
如果我使用“Array_Name[]=NULL”,那么java的垃圾收集器是否会收集数组的其余部分?只有在Java数组销毁,java,arrays,null,Java,Arrays,Null,如果我使用“Array_Name[]=NULL”,那么java的垃圾收集器是否会收集数组的其余部分?只有在Array_Name实际引用了一个数组时才会这样做。并且仅当没有其他对数组的引用时。它将只回收数组中没有被数组外的任何东西引用的元素。而且只有当它觉得有必要去做的时候才会这样做:-) (语法Array\u Name[]=NULL没有真正的意义。但我假设您做了如下操作: Foo[] Array_Name = new Foo[n]; //... Array_Name = null; //
Array_Name
实际引用了一个数组时才会这样做。并且仅当没有其他对数组的引用时。它将只回收数组中没有被数组外的任何东西引用的元素。而且只有当它觉得有必要去做的时候才会这样做:-)
(语法Array\u Name[]=NULL
没有真正的意义。但我假设您做了如下操作:
Foo[] Array_Name = new Foo[n];
//...
Array_Name = null; // Note the lowercase "null"
这可能会使数组成为垃圾收集的合适目标,考虑到我上面描述的条件。)我同意上面提到的一切,但实际上可以通过调用System.gc()手动触发垃圾收集。当然,如前所述,这将只收集不再被其他任何对象引用的对象。次要问题:通过
Array\u Name[]=NULL
您的意思是Array\u Name=NULL
,对吗?实际上应该是arrayName=NULL
。。。风格也很重要。+1…只有当你觉得有必要的时候才会这样做。。。(也就是说,从Java代码的角度来看,GC在运行时基本上是不确定的。)您可能想提到,调用System.GC()是非常不鼓励的。