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