JVM trainee
Как GC решает, что объект можно удалить?
Ответ
По достижимости от GC Roots. GC Roots — статические поля, локальные переменные стека, активные потоки, JNI-ссылки. Если до объекта нельзя добраться по ссылкам от GC Roots — он мусор и будет собран.
Разбор: JVM использует анализ достижимости (reachability) от набора GC Roots — статических полей, локальных переменных и операндов активных стеков, работающих потоков и JNI-ссылок; недостижимые объекты считаются мусором. Ловушка: HotSpot не использует reference counting (он не справляется с циклическими ссылками) и не основан на времени последнего доступа; локальные переменные стека являются полноценными корнями.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.