У меня есть два класса
Class A
{
//constructor
}
Class B
{
private A a;
public B()
{
a = new A();
}
}
Предположим, я использую объект B [скажем b
] в своем коде, и после того, как я в конечном итоге использую его, я установил его на null
.Я знаю, что объект B теперь доступен для сборки мусора.
Я знаю, что после установки b в ноль, он будет немедленно иметь право на сборку мусора?Но как насчет объекта типа А?Будет ли он доступен для сборки мусора немедленно после того, как я установлю B на null
?Или это будет приемлемое для сбора мусора после того, как B будет собирать мусор ?
Теоретически, до тех пор, пока B не будет собран сборщик мусора, a
по-прежнему имеет ссылку на него?Поэтому компилятор SUN JVM обнаружит это сразу после установки b = null
;