Ajuda o GC a anular variáveis locais em Java
Fui 'forçado' a adicionarmyLocalVar = null;
declaração em finalmente cláusula antes de sair do método. A razão é ajudar o GC. Foi-me dito que receberei SMS durante a noite quando o servidor travar na próxima vez, então é melhor eu fazer isso :-).
Eu acho que isso não faz sentido, pois o myLocalVar tem como escopo o método e será 'perdido' assim que o método sair. Anulação extra apenas polui o código, mas é inofensivo de outra forma.
Minha pergunta é: de onde vem esse mito sobre ajudar a GC? (Fui chamado de "livros de memória Java"). Você conhece algum artigo de 'autoridades' que o explique mais detalhadamente? Existe possibilidade de que isso não seja um mito, mas realmente ajude de alguma forma? Se sim, como? Anular variáveis locais pode causar algum dano?
Para esclarecer, o método fica assim:
void method() {
MyClass myLocalVar = null;
try {
myLocalVar = get reference to object;
... do more here ...
} finally {
if (myLocalVar != null) {
myLocalVar.close(); // it is resource which we should close
}
myLocalVar = null; // THIS IS THE LINE I AM TALKING ABOUT
}
}