Java:final、finally、finalize的区别

Java:final、finally、finalize的区别


final--是为修饰符(关键字)

final 在 Java 中是一个保留的关键字,可以声明变量、方法、类。任何变量前被 final 修饰就是 final 变量;定义的类前被 final 修饰就是 final 类;任何方法前被 final 修饰就是final方法。

如果一个类被声明为final的话,则此类不能被继承,因此一个类不能既被声明为final的,又被声明为abstract的;
如果一个方法被声明为final的话,则此方法只能被使用或者重载,不能被重写。并且final方法比非final方法加载快一点;
如果一个变量被声明为final的话,则此变量不能被改变,只能被使用,并且此变量在定义时就要赋初值。final修饰的变量可以是普通变量,也可以是引用变量。如果是普通变量,则为常量,不可变;如果是引用变量,则修饰的引用变量的引用不可变,但引用变量的内容可变。

final小结:
      final 方法比非 final快一些;
      final关键字提高了性能。JVM会缓存final变量;
      final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销;
      使用final关键字,JVM会对方法、变量及类进行优化。


finally--异常处理中的程序块

在异常处理时,使用finally块来进行必要的清理工作,不论是否有异常发生,

finally块中语句都会被执行;如果发生了异常,则先执行catch语句,再执行finally块;


finalize--方法名

在垃圾回收器将内存中的对象进行清空之前,允许使用finalize()方法,先做必要的清理工作;

这个方法是垃圾回收器在确认这个对象没有被引用时(即为垃圾对象),对这个对象进行调用此方法;

此方法是Object对象中的方法,所以所有的都继承了这个finalize()方法;在子类中,可以重写此方法来进行清理操作;

finalize()方法是在垃圾回收器在删除此对象前对其进行调用的。

©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值