finalize()方法一般来说是不可预测的,也是很危险的,一般情况下是不必要的。终结方法的缺点在于不能保证被及时的执行,甚至不会执行。finalize的工作原理是这样的:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作.而程序员无法控制jvm何时进行垃圾回收,所以也就无法控制何时运行finalize()方法。
简而言之,终结方法很少用到,也应该避免使用。