finalize方法

finalize() 方法:

(1)此方法是Object的protected方法。

(2)子类覆盖要处理的{@code finalize}方法,清理系统资源或执行其他清理。

(3)在垃圾回收时,jvm确认没有任何线程调用此对象时,在对象被销毁之前,由垃圾回收器调用该对象的finalize方法。

(4)一般,finalize方法会执行一些清理系统资源的工作。

(5)finalize方法可能会被任何一个线程调用,但是执行时不会加同步锁。

 存在的问题:

(1)Java语言规范并不保证finalize方法会被及时地执行、而且根本不会保证它们会被执行

(2)finalize方法可能会带来性能问题。因为JVM通常在单独的低优先级线程中完成finalize的执行

原文地址:https://www.cnblogs.com/BonnieWss/p/12101818.html