В Java существуют несколько типов ссылок, которые влияют на сборку мусора и жизненный цикл объектов:
Какие типы ссылок есть в Java?
В Java существуют несколько типов ссылок, которые влияют на сборку мусора и жизненный цикл объектов:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В 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
// при сборке мусора объект может быть удалён