Когда объект подходит для сбора мусора?

В приведенном ниже коде, учитывая, чтоamethod был вызван. В какой точке / строке находится Объект, на который изначально ссылаетсяmyObjectимеет право на сбор мусора?

class Test {
  private Object classObject;

  public void amethod() {
    Object myObject = new Object();
    classObject = myObject;
    myObject = null;
  }
}

И еслиclassObject или жеamethod имел бы модификатор доступа public, protected, default или static, это повлияло бы на то, какой объект подходит для сборки мусора? Если это так, как это повлияет?

Сначала я подумал, что объект имеет право на сборку мусора, когда объект Test подходит для сбора мусора.Но затем снова. Оптимизатор может знать, что classObject никогда не читается, и в этом случаеclassObject = myObject; будет оптимизирован иmyObject = null; это точка, которая подходит для сбора мусора.

Ответы на вопрос(7)

Ваш ответ на вопрос