Junior — Middle
Czy możesz wyjaśnić, czym jest miękka referencja w kontekście zarządzania pamięcią w Java?
sobes.tech AI
Odpowiedź od AI
Softowe odwołanie (SoftReference) w Java to typ odwołania, który pozwala obiektowi zostać zebranym przez garbage collector, jeśli w systemie brakuje pamięci, ale przy tym obiekt jest zachowany, dopóki pamięć jest dostępna.
Jest to przydatne do buforowania: obiekty z miękkimi odwołaniami nie są usuwane od razu, a tylko wtedy, gdy konieczne jest zwolnienie pamięci.
Przykład użycia miękkiego odwołania:
import java.lang.ref.SoftReference;
public class SoftReferenceExample {
public static void main(String[] args) {
Object strongRef = new Object();
SoftReference<Object> softRef = new SoftReference<>(strongRef);
strongRef = null; // teraz obiekt jest dostępny tylko przez miękkie odwołanie
Object obj = softRef.get();
if (obj != null) {
System.out.println("Obiekt dostępny");
} else {
System.out.println("Obiekt został już zebrany przez garbage collector");
}
}
}