当你做下面的事情,
@Override
protected void finalize() throws Throwable {
////////////////////////
this.aVeryBigComponent = null;
////////////////////////
super.finalize();
}
Run Code Online (Sandbox Code Playgroud)
声纳抱怨
不好的做法 - Finalizer只会使字段为空
findbugs:FI_FINALIZER_ONLY_NULLS_FIELDS
除了字段外,此终结器不执行任何操作.这是完全没有意义的,并且要求对象被垃圾收集,最终确定,然后再次收集垃圾.你应该删除finalize方法.
只要我知道将字段设置为null有助于垃圾收集器在第一次运行/生成中销毁对象.如果我没有将该字段设置为null,则该对象可能会被发送到第二代并等待更多.
你怎么看?