final、finally、finalize 有什么区别?

final、finally、finalize 有什么区别?

final

  1. 含义:

    • final是一个关键字,表示最终的、不可改变的
  2. 作用:

    • 修饰变量:变量一旦被初始化后其值不能被修改,成为常量。
    • 修饰方法:方法不能被重写。
    • 修饰类:类不能被继承。
final int CONSTANT = 10;
final class FinalClass {}

finally

  1. 含义:

    • finally是用于异常处理的一个关键字,与try-catch语句块一起使用。
  2. 作用:

    • 无论是否发生异常,finally代码块中的代码一定会被执行。通常用于释放资源等操作,确保一些关键的操作不会因为异常而被忽略。
try {
    // 可能抛出异常的代码
} catch (Exception e) {
    // 处理异常
} finally {
    // 无论是否发生异常都要执行的代码,如关闭文件、释放数据库连接等
}

finalize

  1. 含义:

    • finalize是Object类中的一个方法。
  2. 作用:

    • 在Java中,finalize()方法用于在垃圾回收器回收对象之前执行清理操作
    • 这个方法已经不推荐使用,因为它的行为不可预测,且在Java 9中被标记为废弃。
    • 但是,由于垃圾回收的不确定性,不能确切地知道finalize方法何时会被调用,甚至不能保证它一定会被调用。并且现代 Java 编程中不建议过度依赖这个方法来进行资源清理,而应该使用try-with-resources语句或在finally块中进行资源清理以确保资源的正确释放。
class MyClass { 
	@Override 
	protected void finalize() throws Throwable { 
		try { 
			// 清理资源 
		} finally { 
			super.finalize(); // 调用父类的finalize方法 
		} 
	} 
}

总结

  • final是一个修饰符,用于声明不可变的变量、不可重写的方法和不可继承的类
  • finally是一个关键字,用于定义始终执行的代码块
  • finalize是一个方法,用于在对象被垃圾回收前执行清理操作,但已不推荐使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值