Zastanawiam się, czy uważasz za dobrą praktykę usuwanie odwołań (ustawiając je na null
) do obiektów, aby pomóc narzędziu Java Garbage Collector.Czy dobrą praktyką jest usuwanie odniesień, aby pomóc GC?
Na przykład załóżmy, że masz klasę z dwoma polami, z których jeden jest bardzo zajęty. Jeśli wiesz, że potrzebujesz go tylko do konkretnego przetwarzania, możesz je natychmiast anulować, aby pomóc GC.
Załóżmy, że naprawdę potrzebuję tych dwóch pól, a nie tylko zmiennych wewnętrznych, więc heavyObject1
nie może być poza zakresem na końcu metody.
Czy zrobiłbyś to jako ogólną praktykę?
public class TestClass {
public static Object heavyObject1;
public static Object object2;
private static void action() {
object2 = doSomething(heavyObject1);
heavyObject1 = null; //is this good?
}
}
Problem z takim zachowaniem polega na tym, że jest on niezgodny z polami końcowymi, przez co trudniej jest zabezpieczyć kod. – SpaceTrucker
"Dereferencja" oznacza pobranie rzeczy, do której się odwołuje. Edytowałem i zmieniłem to. – delnan