finalize的工作原理应该是这样的:一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。
finalize()在什么时候被调用?
- 所有对象被
Garbage Collection时自动调用,比如运行System.gc()的时候 - 程序退出时为每个对象调用一次
finalize方法 - 显式的调用
finalize方法