Java中final,finally,finalize三个关键字的区别_动力节点Java学院整理

 更新时间:2017年04月24日 10:13:03   投稿:mrr  
这篇文章给大家收集整理了有关java中final,finally,finalize三个关键字的区别介绍,非常不错,具有参考借鉴价值,需要的的朋友参考下吧

final

当这个关键字修饰一个类时,意味着他不能派生出新的子类,也就是说不能被继承,因此一个类不能被同时声明为abstract和final。当final修饰变量或者方法时,可以保证他们在使用中不会被改变。被声明为final的变量必须在初始化时给定初值,以后在使用时只能被引用而不能被修改。同样,当final修饰一个方法时,这个方法不能被重载。

finally

异常处理时提供finally来执行任何清楚操作。如果抛出一个异常,那么相匹配的catch子句就会被执行,然后控制就会转入finally块。

finalize

方法名。finalize方法在垃圾回收器执行内存对象清理时会调用finalize()方法进行前期的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

Java中所有类都从Object类中继承finalize()方法。当垃圾回收器(garbage colector)决定回收某对象时,就会运行该对象的finalize()方法。值得C++程序员注意的是,finalize()方法并不能等同与析构函数。Java中是没有析构函数的。C++的析构函数是在对象消亡时运行的。由于C++没有垃圾回收,对象空间手动回收,所以一旦对象用不到时,程序员就应当把它delete()掉。所以析构函数中经常做一些文件保存之类的收尾工作。但是在Java中很不幸,如果内存总是充足的,那么垃圾回收可能永远不会进行,也就是说filalize()可能永远不被执行,显然指望它做收尾工作是靠不住的。

那么finalize()究竟是做什么的呢?它最主要的用途是回收特殊渠道申请的内存。Java程序有垃圾回收器,所以一般情况下内存问题不用程序员操心。但有一种JNI(Java Native Interface)调用non-Java程序(C或C++),finalize()的工作就是回收这部分的内存。

以上所述是小编给大家介绍的Java中final,finally,finalize三个关键字的区别_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • SpringCloudGateway网关处拦截并修改请求的操作方法

    SpringCloudGateway网关处拦截并修改请求的操作方法

    这篇文章主要介绍了SpringCloudGateway网关处拦截并修改请求的操作方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • MyBatis如何配置多sql脚本执行

    MyBatis如何配置多sql脚本执行

    这篇文章主要介绍了MyBatis如何配置多sql脚本执行问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java实现pdf按页转换为图片

    java实现pdf按页转换为图片

    这篇文章主要为大家详细介绍了java实现pdf按页转换为图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • springmvc 参数绑定总结

    springmvc 参数绑定总结

    本篇文章主要介绍了详解springmvc 参数绑定,详细的介绍了springmvc各种参数绑定的情况,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • Java并行执行任务的几种方案小结

    Java并行执行任务的几种方案小结

    这篇文章主要介绍了Java并行执行任务的几种方案小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • springboot扫描引入jar包的service等组件方式

    springboot扫描引入jar包的service等组件方式

    这篇文章主要介绍了springboot扫描引入jar包的service等组件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java聊天室之实现客户端群聊功能

    Java聊天室之实现客户端群聊功能

    这篇文章主要为大家详细介绍了Java简易聊天室之实现客户端群聊功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
    2022-10-10
  • java设计模式之建造者模式学习

    java设计模式之建造者模式学习

    建造者模式(Builder Pattern)主要用于“分步骤构建一个复杂的对象”,在这其中“分步骤”是一个稳定的算法,下面给出了详细的示例
    2014-01-01
  • Java手写简易版HashMap的使用(存储+查找)

    Java手写简易版HashMap的使用(存储+查找)

    这篇文章主要介绍了Java手写简易版HashMap的使用(存储+查找),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 论java如何通过反射获得方法真实参数名及扩展研究

    论java如何通过反射获得方法真实参数名及扩展研究

    这篇文章主要为大家介绍了java如何通过反射获得方法的真实参数名以及扩展研究,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步早日升职加薪
    2022-01-01

最新评论