Я борюсь с проблемами памяти с моим приложением, и я пытаюсь получить голову за сборку мусора. Если у меня есть следующий код:
public void someMethod() {
MyObject myObject = new MyObject();
myObject.doSomething(); //last use of myObject in this scope
doAnotherThing();
andEvenMoreThings();
}
Итак, мой вопрос: будет ли myObject
доступным для сбора мусора после myObject.doSomething()
, который является последним использованием этого объекта, или после завершения someMethod()
, где он выходит из области видимости? То есть является ли сборка мусора достаточно умной, чтобы увидеть, что хотя локальная переменная все еще находится в области видимости, она не будет использоваться остальной частью кода?