zoukankan      html  css  js  c++  java
  • Object类finalize()

    垃圾收集时由对象上的垃圾收集器调用
    确定没有对该对象的更多引用。
    子类重写{@code finalize}方法进行处理
    系统资源或执行其他清理。
    <P>
    {@code finalize}的一般合同是它被调用
    if和何时Java <font size =“ - 2”> <sup> TM </ sup> </ font>虚拟
    机器已确定不再有任何
    意味着任何拥有的线程都可以访问此对象
    尚未死亡,除非由于采取了行动
    完成一些准备好的其他对象或类
    最终确定。 {@code finalize}方法可以采取任何行动,包括
    使这个对象再次可用于其他线程;通常的目的
    然而,{@code finalize}是在之前执行清理操作
    该对象不可撤销地被丢弃。例如,finalize方法
    对于表示输入/输出连接的对象可能执行的操作
    显式I / O事务以在对象之前断开连接
    永久丢弃。
    <P>
    类{@code Object}的{@code finalize}方法不执行
    特别行动;它只是正常返回。子类
    {@code Object}可能会覆盖此定义。
    <P>
    Java编程语言不保证哪个线程会
    为任何给定对象调用{@code finalize}方法。它是
    但是,保证调用finalize的线程不会
    在finalize结束时持有任何用户可见的同步锁
    调用。如果finalize方法抛出未捕获的异常,
    忽略该异常并终止该对象的终止。
    <P>
    在为对象调用{@code finalize}方法之后,没有
    在Java虚拟机再次执行之前,将采取进一步操作
    确定该对象不再具有任何手段
    任何尚未死亡的线程都可以访问,包括可能的线程
    其他准备完成的对象或类的动作,
    此时可以丢弃该对象。
    <P>
    Java永远不会多次调用{@code finalize}方法
    任何给定对象的虚拟机。
    <P>
    {@code finalize}方法引发的任何异常都会导致
    要暂停此对象的最终确定,否则
    忽略。
         *
    @throws Throwable这个方法引发的{@code Exception}

        protected void finalize() throws Throwable { }

  • 相关阅读:
    GIS重要概念与术语——矢量数据分析
    后台获取存储过程返回的数据(转)
    java集合map,set,list区别
    安装jdk配置环境变量并测试java
    使用JAVA读写Properties属性文件
    对象(含有java.util.Date),集合等转换成json
    SSH自我理解实质
    Hibernate中createCriteria即QBC查询的详细用法
    用Java递归来求N的阶层
    java this的使用
  • 原文地址:https://www.cnblogs.com/huiandong/p/9477505.html
Copyright © 2011-2022 走看看