它是否有助于GC在Java中空局部变量
在离开方法之前,我被“强迫”将语句添加到最后子句中。原因是为了帮助GC。我被告知下次服务器崩溃时,我会在晚上收到短信,所以我最好这样做:-)。myLocalVar = null;
我认为这是毫无意义的,因为myLocalVar的范围限定为方法,一旦方法退出,就会“丢失”。额外的清空只会污染代码,但除此之外是无害的。
我的问题是,这个关于帮助GC的神话从何而来?(我被称为“Java内存书”)您知道任何来自“权威”的文章更深入地解释它吗?有没有可能不是神话,但真的以某种方式有所帮助?如果是这样,如何?将局部变量清空会造成任何伤害吗?
为了澄清,方法如下所示:
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
}
}