Object类中定义的protected方法用户可以调用对象的finalize,但不影响jvm对finalize的处理jvm最多可以执行一次对象的finalize方法 与finalize相关的回收过程
当对象被判定为与GC Roots无引用链相连,即不可达时,若对象未覆盖finalize方法,将直接被jvm回收。若对象覆盖了finalize方法,则判断是否已经执行过finalize方法。若已执行过,对象将被回收,否则,将对象放入F-Queue,由低优先级的线程执行finalize方法。finalize方法有可能将对象重新被GC Roots可达的对象引用。执行完finalize方法后,对该对象进行可达性分析,若不可达回收对象,否则对象复活。



