JAVA final、finally、finalize的不同之处

本文详细解析了Java中final关键字的用法,包括修饰类、方法和变量的不同作用;介绍了finally如何与try-catch结合使用确保代码执行,并讨论了其执行条件;还解释了finalize方法的作用及其实现细节。

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

final——修饰符(关键字)

final可以修饰类、方法、变量

1.1 修饰类

如果一个类用final进行修饰,则这个类不能被其他任何类所继承,其成员的方法也会被默认为final类型的。

1.2 修饰方法

如果一个方法被final修饰,则这个方法不能被这个类的子类所覆盖,final修饰的方法已经表示此方法是“最后的、最终的”意思。

1.3 修饰变量

final成员变量表示常量,只能被赋值一次,赋值后值不再改变;如果final修饰一个引用类型时,则在对其初始化之后便不能再让其指向其他对象了,但该引用所指向的对象内容是可以发生变化的(即该地址不能发生变化)。用final定义的类成员必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。

举个例子:

2     finally

finally一般和try-catch语句搭配着使用。当try代码块或者catch代码块执行的时候,finally块里面的代码总是被执行。这使得程序员可以在finally块里面做一些善后工作,比如异常的处理,和一些代码的清理。

注意:finally在一些情况下,是不会被执行的:

1、   程序在try语句块之前返回或者抛出异常;

2、   在try语句块中执行了System.exit(0)语句,终止了Java虚拟机的运行,或者当一个线程在执行try语句块或者catch语句块是被打断或者被终止,与其相对应的finally语句块也不会被执行。

Finally代码块语句应该是在控制转移语句之前执行,控制转移语句除了return外,还有break和continue。

3     finallize()

finalize()是Java里面的一个方法,垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法,Object已经实现了其默认的方法。当垃圾回收器不能对一些部分进行正确的回收,这时就需要我们覆盖默认的方法来实现对这部分内容的正确释放和回收。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值