首页 > 其他 > 详细

Object类finalize()

时间:2018-08-14 20:56:59      阅读:145      评论:0      收藏:0      [点我收藏+]

垃圾收集时由对象上的垃圾收集器调用
确定没有对该对象的更多引用。
子类重写{@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 { }

Object类finalize()

原文:https://www.cnblogs.com/huiandong/p/9477505.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!