finalize方法
finalize() 方法:
(1)此方法是Object的protected方法。
(2)子类覆盖要处理的{@code finalize}方法,清理系统资源或执行其他清理。
(3)在垃圾回收时,jvm确认没有任何线程调用此对象时,在对象被销毁之前,由垃圾回收器调用该对象的finalize方法。
(4)一般,finalize方法会执行一些清理系统资源的工作。
(5)finalize方法可能会被任何一个线程调用,但是执行时不会加同步锁。
存在的问题:
(1)Java语言规范并不保证finalize方法会被及时地执行、而且根本不会保证它们会被执行
(2)finalize方法可能会带来性能问题。因为JVM通常在单独的低优先级线程中完成finalize的执行