码迷,mamicode.com
首页 > 其他好文 > 详细

final,finally,finalize之间的区别。

时间:2019-11-01 18:47:34      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:程序员   object   new   函数   链接   实现   注意   语句   finally   

fianl:可以修饰类、变量、方法。修饰类不能被继承,修饰变量只能赋值一次,修饰方法不能被重写。

finally是try语句体中的一个语句体,不能单独使用,用来释放资源。

 finalize()是在java.lang.Object里定义的,也就是说每一个对象都有这么个方法。这个方法在gc启动,该对象被回收的时候被调用。其实gc可以回收大部分的对象(凡是new出来的对象,gc都能搞定,一般情况下我们又不会用new以外的方式去创建对象),所以一般是不需要程序员去实现finalize的。 
特殊情况下,需要程序员实现finalize,当对象被回收的时候释放一些资源,比如:一个socket链接,在对象初始化时创建,整个生命周期内有效,那么就需要实现finalize,关闭这个链接。 
  使用finalize还需要注意一个事,调用super.finalize();

  一个对象的finalize()方法只会被调用一次,而且finalize()被调用不意味着gc会立即回收该对象,所以有可能调用finalize()后,该对象又不需要被回收了,然后到了真正要被回收的时候,因为前面调用过一次,所以不会调用finalize(),产生问题。 所以,推荐不要使用finalize()方法,它跟析构函数不一样。

final,finally,finalize之间的区别。

标签:程序员   object   new   函数   链接   实现   注意   语句   finally   

原文地址:https://www.cnblogs.com/wangffeng293/p/11778349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!