46异常处理完成以后,Exception对象会发生什么变化?

149 阅读1分钟

笔记

Exception对象会在下一个垃圾回收过程中被回收掉。

原文

链接:www.nowcoder.com/questionTer…
来源:牛客网

异常处理对象在异常处理完后,没有引用指向它,变成了不可达对象.
它将在接下来JVM进行gc操作时被标记为"不可达", 如果该Exception实例实现了finalize方法,那么就会安排到F-queue队列中等待执行finalize方法(但是由于F-queue所在线程的优先级很低,所以可能一直得不到执行,而长时间留在该队列中);
再下一次执行gc时,如果Exception对象已经执行完成finalize方法,它将被回收(彻底抹去内存中的数据).