例如,我有以下对象:
AutoDetectParser parser = new AutoDetectParser();
ParseContext pc = new ParseContext();
CustomBodyContentHandler ch = new CustomBodyContentHandler(-1);
为了给它们分配内存,我在右边写了new运算符,它是相等的,而这样的对象是在一个线程中创建的,所以如果有很多线程,那么就有很多这样的对象。
当线程完成它的工作时,你需要清除分配的内存,你想了解是否需要这样写:
mimeType = null;
parser = null;
pc = null;
ch = null;
或者 GC 本身将删除所有内容,因为没有对这些对象的引用。
告诉我该怎么做?是不是一定要写null清空内存,同时清空?!预先感谢您的理解。
如果线程已终止,则堆栈内存(存储对存储在堆上的对象的引用)现在是空的,这意味着没有对这些对象的引用。现在还需要等待
gc
下一次清洁,但我们不能再影响它了。你不需要自己分配
null
。