JVM middle

Что такое WeakReference / SoftReference / PhantomReference?

Ответ

Weak — GC собирает при первой же сборке. Soft — GC собирает при нехватке памяти (для кэшей). Phantom — для постфинализационной очистки ресурсов. WeakHashMap — ключи через WeakReference.

Разбор: Weak собирается при ближайшей сборке, Soft — при нехватке памяти (кэши), Phantom — для постфинализационной очистки ресурсов, причём get() у PhantomReference всегда возвращает null. Дистракторы путают Weak с Soft, приписывают Phantom воскрешение объекта или ненулевой get(), а WeakHashMap делает слабыми именно ключи, а не значения.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться