这是正确的,但是这个解决方案可能无法推广。在将 List 对象引用设置为 null-will-make 内存可用于垃圾回收时,这仅适用于基元类型的 List 对象。如果 List 对象包含引用类型,则设置 List 对象 = null 将不会取消对列表中包含的任何引用类型的引用。在这种情况下,设置 List object = null 将孤立包含的引用类型,除非垃圾收集算法足够聪明,能够确定对象已经孤立,否则这些引用类型的对象将不能用于垃圾收集。
当没有对象的引用时,对于
而不是调用一些例程(比如 free in
C + +) ,只需将对象的所有引用赋值为 null,或者
为引用分配一个新类。
例如:
public static void main(String args[])
{
// Instantiate a large memory using class
MyLargeMemoryUsingClass myClass = new MyLargeMemoryUsingClass(8192);
// Do some work
for ( .............. )
{
// Do some processing on myClass
}
// Clear reference to myClass
myClass = null;
// Continue processing, safe in the knowledge
// that the garbage collector will reclaim myClass
}