finalize

作者: Crazy贵子 | 来源:发表于2018-09-27 09:05 被阅读0次

    finalize

    它是Object中的一个方法,与C++中的析构函数类似,与垃圾回收有关,在java 9中已弃用。当垃圾回收器确定不存在该对象的更多引用时,也就是确定当前尚未终止的任何线程都无法再通过任何方法访问该对象,则JVM会调用该方法,并且最多调用一次,但如果准备中止的某个类或对象的终结操作执行了某个操作,则不会调用。finalize方法中可以执行让该对象给其他线程使用的操作,不过它的主要目的是在对象不可撤销的前提下进行清除操作。JVM不保证某个线程会调用给定对象的finalize方法,当某个线程调用它后也不会持有任何用户可见的同步锁。如果finalize方法抛出未被捕获的异常则会被忽略,当前的finalize终结操作停止。
    调用finalize十分消耗资源,并且由于它调用的不确定性,所以不建议将一些资源清除工作放在finalize中执行,而是是用哪个try...finally块或类似的机制实现。

    相关文章

      网友评论

          本文标题:finalize

          本文链接:https://www.haomeiwen.com/subject/kkvsoftx.html