当前位置: 首页 > news >正文

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是一个方法,用于在对象被垃圾回收前执行清理操作,但已不推荐使用

相关文章:

  • dify联网搜索如何限制在只在一个网站上搜索呢??
  • 【QA】QT中事件和信号的区别以及联系是什么?
  • Z世代的消费升级体现在哪些地方?
  • JavaScript | 爬虫逆向 | 掌握基础 | 01
  • Compose 实践与探索十六 —— 与传统的 View 系统混用
  • PageHelper插件依赖引入不报错,但用不了
  • S32K144入门笔记(十七):PDB的API函数解读
  • 多语言生成语言模型的少样本学习
  • C++代码3-多目标布谷鸟算法求解车辆路径规划算法
  • PurpleLlama大模型安全全套检测方案
  • GetKeyState()和GetAsynKeyState()的差异
  • 音视频系列——Websockets接口封装为Http接口
  • 智能追踪台灯需求文档
  • 尝试使用tauri2+Django+React的项目
  • 如何获取与testFile同级目录下的所有文件?
  • 企业级AI架构探索:业务驱动,场景优先
  • 集成平台是选择专业iPaaS厂商还是大型软件企业?
  • 善用批处理的for命令倍增效率(附彩蛋:windows官方bug)
  • 【面试场景题-你知道readTimeOutException,会引发oom异常吗】
  • JavaScript 获取 URL 中参数值的详解
  • 中国海警依法驱离日非法进入我钓鱼岛领海船只
  • 用社群活动维系“不开发”古镇的生命力
  • 夜读丨最美的风景,在亲人的目光里
  • 上海飞银川客机触地复飞后备降西安,亲历者:不少乘客都吐了
  • 机关食堂向游客开放的重庆荣昌区,“消费市场迎来历史性突破”
  • 世界羽联主席巴达玛:中国组织赛事的能力无与伦比