《Beginning Java 7》 - 4 - finalize() 手动垃圾回收

当我们想在系统进行垃圾回收时做一些特定的工作,我们就可以重写 finalze() 函数,因为 Object 的 此函数是空的。

比如:

protected void finalize() throws Throwable {
    try {
        //do something
    }
    finally {
        super.finalize();
    }
}

但这种写法不是完美的,因为如果出现 Exception,finally 不会被调用。super.finalize() 将永远不会被执行。那么解决办法是,要处理 Exception,并在处理后调用 super.finalize()。

posted @ 2013-12-24 08:28  davesuen  阅读(166)  评论(0编辑  收藏  举报