JVM判定对象是否死亡,是通过可达性分析算法来发现对象是否还存在与 GC Root 相连的引用链,如果没有相连的引用链,则进行第一次标记并且判断对象是否有覆盖 finalize() 方法或者是否调用过 finalize() 方法,如果没有覆盖或者没有调用过 finalize() 方法,那么JVM将判定对象已经死亡并进行回收。
JVM判定对象是否死亡,是通过可达性分析算法来发现对象是否还存在与 GC Root 相连的引用链,如果没有相连的引用链,则进行第一次标记并且判断对象是否有覆盖 finalize() 方法或者是否调用过 finalize() 方法,如果没有覆盖或者没有调用过 finalize() 方法,那么JVM将判定对象已经死亡并进行回收。