final

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

finally

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

finalize

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

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

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

java final 变量 回收_java入门教程-Java中final,finally,finalize三个关键字的区别相关推荐

  1. java视频教程千峰_java基础教程-Java开发入门视频教程-千锋教育视频资源库

    第1节 - Java由来及语言特点 点击播放 第2节 - Java的执行机制及第一个应用程序 点击播放 第3节 - 类的阐述及Package相关 点击播放 第4节 - Java的编码规范 点击播放 第 ...

  2. java子类创建过程_JAVA入门小小白学习中ing(匿名对象、封装性、继承性、子类对象的创建过程、spuer关键字(用法一))...

    小小白慢慢学习中ing 第十二天 努力努力 本日内容(匿名对象.封装性.继承性.子类对象的创建过程.spuer关键字) 1.匿名对象 创建对象的语法:Person p1 = new Person(); ...

  3. java 常量变量使用_java常量和变量入门教程

    java常量和变量入门教程 Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代).运算符重载(operato ...

  4. java和python自学教程_适合 Java开发者学习的Python 入门教程—文海思创

    原标题:适合 Java开发者学习的Python 入门教程-文海思创 [文海思创讯]在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了.这让我们有常规和专业 ...

  5. java final 变量 好处_深入理解Java中的final关键字

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  6. OpenCV 入门教程:中值滤波和双边滤波

    OpenCV 入门教程:中值滤波和双边滤波 导语 一.中值滤波 二.双边滤波 三.示例应用 3.1 图像去噪 3.2 图像平滑 总结 导语 在图像处理和计算机视觉领域,中值滤波和双边滤波是两种常见的滤 ...

  7. java final 变量只读_java final的使用总结

    final 变量:是只读的: final 方法:是不能继承或者重写的. final 引用:引用不能修改,但是对象本身的属性可以修改: final class:不可继承: final MyObject ...

  8. java -jar 默认参数_JAVA入门学习指南,建议收藏

    如果你不懂Java 并且想认真学习接触了解一下Java的语法,建议把这篇文章收藏了,多看几遍,应该可以初步掌握Java 大部分基础的语法 . 让我们出发吧!ps:本文有点长,耐心阅读 . 〇,编程环境 ...

  9. java axis2 教程_webservice的Axis2入门教程java版

    本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebServi ...

最新文章

  1. 微信小程序的多选改变样式_微信小程序button选中改样式-实现单选/多选
  2. html5在哪编译,HTML5_提供的 新功能_less 编译_
  3. 使用telnet模拟邮件的收发
  4. C语言面试题之华为篇2(答案全)
  5. 如何集成和使用EclEmma插件来获得良好的Junit覆盖率
  6. 嵌套For循环性能优化
  7. 华为交换机S3700清空配置方法
  8. object detection错误Message type object_detection.protos.SsdFeatureExtractor has no field named bat
  9. H3C telnet 配置
  10. Kotlin入门(33)运用扩展属性
  11. 清华毕业生最爱去华为;应届生称因拒绝加班,被申通快递辞退;PrestoSQL被迫更名 | 极客头条...
  12. 麦克纳姆轮全向移动机器人纵向直线运动分析
  13. CCF201703-1 分蛋糕(100分)
  14. 设配器模式不止是补救,有时更像是一个创造者
  15. 解决pycharm导入自己写的模块飘红问题
  16. 高德地图android拖动地图,建议高德地图添加地图拖动事件,添加方法如内容所述...
  17. 【Nginx 源码学习】Nginx 的缓冲区
  18. PTA单链表 - 20. 单值化(去重)
  19. 从任志强的发言看光伏科普任重道远
  20. Altium designer别再傻傻的一个个给元件添加封装了

热门文章

  1. 打靶归来——记参加射击比赛感想
  2. 【2781】二分练习 sdutOJ
  3. IT.如何选择转型?
  4. 我要放弃RedHat Linux了
  5. Python打包PyPI上传实践
  6. linux 系统监控和进程管理
  7. Linux的capability深入分析(1)【转】
  8. Win7启动显示无法加载用户配置文件
  9. VBA 里面注册dll
  10. 关闭VMware 不用的服务