Мне интересно, считаете ли вы хорошей практикой удалять ссылки (устанавливая их на null
) на объекты, чтобы помочь сборщику мусора Java.Является ли хорошей практикой удалять ссылки, чтобы помочь GC?
Например, предположим, что у вас есть класс с двумя полями, один из которых очень утомительно. Если вы знаете, что вам нужна только эта обработка для конкретной обработки, вы можете сразу ее удалить, чтобы помочь GC.
Предположим, мне действительно нужны эти два поля, а не только внутренние переменные, поэтому heavyObject1
не может быть недоступен в конце метода.
Вы бы сделали это как обычную практику?
public class TestClass {
public static Object heavyObject1;
public static Object object2;
private static void action() {
object2 = doSomething(heavyObject1);
heavyObject1 = null; //is this good?
}
}
Проблема с таким поведением в том, что он несовместим с конечными полями и, таким образом, делает ваш код более надежным для потоковой безопасности. – SpaceTrucker
«Разница» означает выбор того, на что ссылается. Я отредактировал и изменил это. – delnan