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 шт):
Если поток завершился, значит стековая память (в которой хранятся ссылки на объекты, которые хранятся в куче) теперь пустая, а значит нет ссылок на эти объекты. Теперь остаётся ждать, когда gc проведёт следующую чистку, но на это мы уже повлиять не можем.
Самим присваивать null не требуется.