Какие типы ссылок есть в Java?
Ответ от нейросети
sobes.tech AI
В Java существуют несколько типов ссылок, которые влияют на сборку мусора и жизненный цикл объектов:
-
Strong Reference (сильная ссылка) — обычная ссылка на объект. Пока есть сильные ссылки, объект не будет удалён сборщиком мусора.
-
Soft Reference (мягкая ссылка) — объект с мягкой ссылкой удаляется только при нехватке памяти. Используется для кэширования.
-
Weak Reference (слабая ссылка) — объект с слабой ссылкой может быть удалён при следующем проходе сборщика мусора, даже если есть слабые ссылки.
-
Phantom Reference (призрачная ссылка) — используется для отслеживания момента, когда объект уже готов к удалению, но ещё не удалён. Позволяет выполнять дополнительные действия после финализации.
Пример создания слабой ссылки:
import java.lang.ref.WeakReference;
String strong = new String("Hello");
WeakReference<String> weak = new WeakReference<>(strong);
strong = null; // теперь объект доступен только через weak
// при сборке мусора объект может быть удалён