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