final finally finalize() 之间的区别

本文介绍了Java中final、finally和finalize的相关知识。final可修饰类和方法,类被修饰后不能被继承,方法被修饰后不能被重写;finally是异常处理的一部分,除特定情况外,其代码块最后一定执行;finalize方法在对象被GC清理时可能执行,但不保证执行完。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. final
final是类修饰符。只有类和方法可以用final来修饰,成员属性不可以final修饰。
当类被修饰为final时,这个类不能被继承;
当一个方法被修饰为final时,这个方法不可以被重写。

2.finally
finally 异常处理的一部分,它只能用在try/catch语句中。除了以下2种情况外,不管是否 出现异常,finally语句块中的代码最后一定被执行。
①程序未进入try{}块的执行,如在try之前出现运行时异常,程序终止。
②程序进入到try{}和catch{}块的执行,但是在try{}或者catch{}块碰到了System.exit(0)语句,jvm直接退出,finally{}块不会执行(当try和catch中有return时,finally仍然会执行)。
3.finalize();
当某个类重载finalize()方法后,该类的实例对象在没被引用而被GC清理时会执行finalize()方法。
虚拟机会把要执行finalize的对象放在一个F-Queue队列,会创建一个低优先的线程Finalizer去执行finalize()方法,但不保证这个方法会执行完,因为finalize()方法可能会执行缓慢,或者发生死循环导致内存无法回收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值