JAVA中final,finally,finalize的区别

三个关键字的用法

一.final关键字的用法

      final关键字可以用于类,方法,变量前,用来表示该关键字修饰的类,方法,变量
  具有不可变的特性。
  (1)   final关键字用于基本数据类型前:这时表明该关键字修饰的变量是一个常量,
      在定义后该变量的值就不能被修改。
  (2)   final关键字用于方法方法声明前:这时意味着该方法是最终方法,只能被调用
     不能被覆盖,但是可以被重载。
  (3)   final关键字用于类名前:此时表示该类被称为最终类,该类不能被其他类继承。

二.finalize关键字的用法

     finalize方法来自于java.lang.Object,用于回收资源。可以为任何一个类添加
 finalize方法。finalize将在垃圾回收器清除对象之前被调用。 
     在实际引用中,不要依赖使用该方法回收任何短缺的资源,这是因为很难知道这个
 方法什么时候被调用。

三.finally关键字的用法

    当代码抛出一个异常时,就会终止方法中剩余代码的处理,并退出这个方法的执行 
 例如:我们打开了一个文件,但在处理文件过程中发生异常 ,这是文件还没有被关闭,
 此时就会产生资源回收问题。对此,java提供了一种好的解决方案,那就是finally子句
 finally字句中的语句一定会被执行的,所以我们只要把前面说的文件关闭的语句放在
 finally字句中无论在读写文件中是否遇到异常退出,文件关闭语句都会执行,保证了
 资源的合理回收。

关于finalize的一些贴心提示:

     jvm在进行GC之前,需要判断即将回收的对象所在的类是否覆写了finalize()?
        ---a.若没覆写,此对象直接被回收。
        ---b.若对象所在类覆写了finalize()方法。
              ---- ①: 若finalize()方法未被jvm调用,会调用finalize()方法,
                       若次对象在此次调用过程中与GC Roots有路可走,此对象不
                       再被回收。
              ---- ②:若finalize()已被jvm调用,此对象直接被回收。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值