Назад к вопросам
Junior — Middle
72
В каких ситуациях и при каких условиях Java вызывает сборщик мусора для различных типов ссылок?
Компании, где спрашивали
GrowFood
Ответ от нейросети
sobes.tech AI
В Java сборщик мусора (GC) автоматически освобождает память, когда объекты становятся недоступными. Типы ссылок влияют на то, когда объект считается достижимым:
- Strong Reference (сильная ссылка) — обычная ссылка. Объект не будет собран, пока есть хотя бы одна сильная ссылка.
- Soft Reference (мягкая ссылка) — объект может быть собран при нехватке памяти, но обычно сохраняется.
- Weak Reference (слабая ссылка) — объект может быть собран при следующем цикле GC, если нет сильных ссылок.
- Phantom Reference (фантомная ссылка) — используется для отслеживания удаления объекта, объект уже считается недостижимым.
Сборщик мусора вызывается, когда:
- Память заканчивается или достигается порог.
- JVM решает оптимизировать использование памяти.
Объекты с сильными ссылками живут дольше, мягкие и слабые — могут быть удалены раньше, фантомные — для специальных целей.
Пример использования слабой ссылки:
WeakReference<MyObject> weakRef = new WeakReference<>(new MyObject());
// Если больше нет сильных ссылок, объект может быть собран GC