问题是自我解释:
Foo objfoo;
try
{
objfoo = new Foo();
..........
.........
}
catch
{
}
finally
{
objfoo = null;
}
Run Code Online (Sandbox Code Playgroud)
是否有必要释放这样的对象?
Jar*_*Par 13
注意:将local/field设置null为不释放该值.相反,删除对该值的引用,该引用可能会或可能不会使其在下一个GC cyle期间可以进行收集.
要回答这个问题,不是没有必要.JIT`er将计算上次使用本地的时间,并且基本上将本地删除为当时对象的GC根之一.取消本地出局不会加快这一进程.
Raymond Chen在这个主题上写了一篇很好的文章