深入java虚拟机第9章, 垃圾收集(4)
finalize方法
终结方法是垃圾收集器在释放对象前必须运行。垃圾收集器必须检查它所发现的不再被引用的对象是否存在finalize方法。
对象可触及性的生命周期
在垃圾收集器看来,堆中的每一个对象都有三个状态之一:可触及的,可复活的,以及不可触及的。
如果垃圾收集器从根节点可以追踪到这个对象,这个对象就是可触及的。
每一个对象都是从可触及状态开始生命周期的,只要程序还保留至少一个可以触及的引用到该对象,它就一直保持可触及状态。一旦程序释放了所有到该对象的引用,然后这个对象就变成可复活状态。
finalize方法
终结方法是垃圾收集器在释放对象前必须运行。垃圾收集器必须检查它所发现的不再被引用的对象是否存在finalize方法。
对象可触及性的生命周期
在垃圾收集器看来,堆中的每一个对象都有三个状态之一:可触及的,可复活的,以及不可触及的。
如果垃圾收集器从根节点可以追踪到这个对象,这个对象就是可触及的。
每一个对象都是从可触及状态开始生命周期的,只要程序还保留至少一个可以触及的引用到该对象,它就一直保持可触及状态。一旦程序释放了所有到该对象的引用,然后这个对象就变成可复活状态。