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