У меня есть два класса
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
;