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