当前位置: 首页 > 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是一个方法,用于在对象被垃圾回收前执行清理操作,但已不推荐使用
http://www.dtcms.com/a/82059.html

相关文章:

  • 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 中参数值的详解
  • 【动态规划】详解混合背包问题
  • YOLO11改进-模块-引入空间带状注意力机制(Spatial Strip Attention,SSA)增强模型对空间信息处理能力的重要模块
  • Windows搭建免翻墙的BatteryHistorian
  • Animation - AI Controller控制SKM_Manny的一些问题
  • 笔记:代码随想录算法训练营day58:101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
  • 成都文创浪潮中,国际数字影像产业园的标杆塑造之路
  • Netlify 的深度解析及使用指南
  • 深入探讨 `ip2region` 中三种初始化方法:newWithBuffer、newWithVectorIndex 和 newWithFileOnly
  • 针对耳鸣患者推荐的一些菜谱和食材
  • 产品更新 | 数字助决胜:华望M-Arch平台实现从体系模型到仿真推演