创建阶段 应用阶段 不可见阶段 不可达阶段 收集阶段 终结阶段 空间重新分配阶段
对象在不可达阶段之后会进入到收集阶段,查看这个对象有没有必要执行finalize方法,如果没有必要的话,也就是说没有重写finalize方法,虚拟机已经调用过finalize方法,那就进入终结阶段,如果有必要,也就是重写了finalize方法,会进入F-queue,虚拟机会自动创建一个低优先级的线程,并finalize执行对象的finalize方法,然后在执行这个方法的时候如果没有重新被跟对象建立连接,那就会进入终结阶段,如果重新建立了连接,对象就会从F-queue中移除,并且对象重新进入应用阶段
对象在不可达阶段后进入垃圾收集,评估是否执行finalize方法。若无须执行或已执行过,则进入终结阶段;否则放入F-queue,由低优先级线程执行finalize。如果在执行过程中未重新建立连接,对象将被终结;反之则回应用阶段。
130

被折叠的 条评论
为什么被折叠?



