В приведенном ниже коде, учитывая, что был вызван 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;- это то, что он имеет право на сборку мусора.