Junior — Middle
99
Erklären Sie, was eine schwache Referenz ist und wie sie sich in der Speicherverwaltung von einer starken Referenz unterscheidet.
Unternehmen wurden gefragt
Antwort von AI
sobes.tech KI
Сильная ссылка (strong reference) — это обычная ссылка на объект в Java. Пока существует хотя бы одна сильная ссылка на объект, сборщик мусора не удалит этот объект из памяти.
Слабая ссылка (weak reference) — это ссылка, которая не препятствует сборщику мусора удалять объект. Если объект доступен только через слабые ссылки, он считается кандидатом на сборку мусора.
Пример использования слабых ссылок — кэширование, где объекты могут быть удалены при нехватке памяти, чтобы не удерживать их в памяти постоянно.
Пример кода:
import java.lang.ref.WeakReference;
public class WeakReferenceExample {
public static void main(String[] args) {
Object strong = new Object();
WeakReference<Object> weak = new WeakReference<>(strong);
System.out.println("Before nulling strong: " + weak.get()); // объект доступен
strong = null; // теперь объект доступен только через слабую ссылку
System.gc(); // попытка вызвать сборщик мусора
System.out.println("After GC: " + weak.get()); // может быть null, если объект собран
}
}