finalize方法

finalize() 方法:

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

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

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

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

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

 存在的问题:

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

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

posted @ 2019-12-26 14:20  第二人生Bonnie  阅读(455)  评论(0编辑  收藏  举报