回答重点
1)final:用于修饰类、方法、变量,主要用来设计不可变类、确保类的安全性、优化性能(编译器优化)
- 类:被final修饰的类不能被继承
- 方法:被final修饰的方法不能被重写
- 变量:被final修饰的变量不能再次复制,常用于定义常量
2)finally:与try-catch语句块结合使用,用于确保无论是否发生异常,finally代码块都会执行。
主要用于释放资源(如关闭文件,数据库连接等),以保证即使发生异常,资源也会被正确释放。
3)finalize():是Object类的方法,允许对象在被垃圾回收前进行清理操作。
较少使用,通常是用于回收非内存资源(如关闭文件或释放外部资源),但不建议依赖于它,因为JVM不保证finalize()会被即时执行
在JDK9之后,finalize()方法已被标记会废弃,因为Java提供了更好的替代方案(如AutoCloseable接口和try-with-resources语句)
扩展知识
finally的注意事项
比如不要在finally中使用return,看这一篇的最后部分:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



