9 подписчиков
С точки зрения GC объект на который указывает локальная переменная может не дожить даже до конца области видимости этой переменной. JIT подготавливает информацию для GC не на основе области видимости переменных, а на основе их использования.
Допустим у вас есть метод длинной 10 строк. В первых трёх строках вы используете переменную, которая указывает на объект класса, тогда, если на 4-ой строке запустится GC, то он вполне может уничтожить объект, на который ссылается ваша переменная.
Около минуты
29 июня 2022