Java Очистка памяти с помощью null

Например у меня есть такие объекты:

AutoDetectParser parser = new AutoDetectParser();
ParseContext pc = new ParseContext(); 
CustomBodyContentHandler ch = new CustomBodyContentHandler(-1);

Чтобы выделить под них память я пишу оператор new справа он знака равно, при этом такие объекты создаются в потоке, поэтому если много потоков, то и много таких объектов.

Когда поток заканчивает свою работу нужно очистить выделенную память, и хочется понять, нужно ли писать такое:

mimeType = null;
parser = null;
pc = null;
ch = null;

Или GC сам все удалит, потому что нет ссылки на эти объекты.


Подскажите как быть? Нужно ли писать null, чтобы очистить память и очищается ли она при этом?! Заранее спасибо за понимание.


Ответы (1 шт):

Автор решения: Sergey Zh.

Если поток завершился, значит стековая память (в которой хранятся ссылки на объекты, которые хранятся в куче) теперь пустая, а значит нет ссылок на эти объекты. Теперь остаётся ждать, когда gc проведёт следующую чистку, но на это мы уже повлиять не можем.

Самим присваивать null не требуется.

→ Ссылка