Сколько объектов доступно для сборки мусора после выполнения следующего кода?
class beta{ } class demo{ static beta b1; beta b2; public static void main(String args[]){ beta b1 = new beta(); beta b2 = new beta(); demo d1 = new demo(); demo d2 = new demo(); d1.b1=b1; d1.b2=b1; d2.b2=b2; d1= null; b1= null; b2=null; } }
Если мы добавим System.out.println(d1.b1); внутри основного блока, то выход будет beta@3a7f1228
то есть; не нулевой.
Что я уже пробовал:
Поскольку мы все еще можем получить доступ к d1.b1, то объект d1 все еще жив, поэтому ни один из них не должен быть доступен для gc.
Скажи мне, где я ошибаюсь?
Ответ-1.