final关键字
final 关键字一共有三种用法,它可以用来修饰变量、方法或者类。
作用:这个变量一旦被赋值就不能被修改了,也就是说只能被赋值一次,如果我们尝试对一个已经赋值过 final 的变量再次赋值,就会报编译错误。

final变量必须在声明时进行初始化,可以在声明时直接赋值或在构造函数中赋值。
final变量通常用大写字母命名,多个单词之间用下划线分隔。
当应用于方法时,final关键字表示该方法不能被子类重写。即子类无法对final方法进行更改或扩展。
final方法对于类设计的稳定性和安全性很有用,可以防止子类改变父类的关键逻辑。
(3)final修饰类
·当应用于类时,表示该类不能被继承,即它是最终类,无法有子类(可以有父类)。
·final类通常用于安全或设计的考虑,防止其他类对其进行扩展或修改。
final、finally、finalize有什么区别?
1.final:
(1)修饰符(关键字)如果一个类被声明为final,意味着它不能再派生新的子类,不能作为父类被继承。因此一个类不能及被声明为abstract,又被声明为final的。
(2)将变量或方法声明为final,可以保证他们使用中不被改变。被声明为final的变量必须在声明时给定初值,而以后的引用中只能读取,不可修改,被声明为final的方法也同样只能使用,不能重载。
2.finally:
在异常处理时提供finally块来执行清楚操作。如果抛出一个异常,那么相匹配的catch语句就会执行,然后控制就会进入finally块,如果有的话。
3.finalize:
是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除之前做必要的清理工作。这个方法是在垃圾收集器在确定了,被清理对象没有被引用的情况下调用的。
finalize是在Object类中定义的,因此,所有的类都继承了它。子类可以覆盖finalize()方法,来整理系统资源或者执行其他清理工作。
finally和return:
(1)2种finally不会执行的情况
a.在try语句之前就return了
b.try语句中有System.exit();语句
(2)finally语句在return执行之后,return返回之前执行
说明:先执行了return 语句中的方法,然后返回值
(3)如果finally中有return语句
说明:finally里的return直接返回了,就不管try中是否还有返回语句,这里还有个小细节需要注意,finally里加上return过后,finally外面的return b就变成不可到达语句了,也就是永远不能被执行到,所以需要注释掉否则编译器报错。
(4)如果finally语句中没有return语句覆盖返回值,那么原来的返回值可能因为finally里的修改而改变也可能不变。
(5)若发生异常,catch语句中的return语句和try中的return语句的情况一模一样
总结:finally语句在return执行之后,return返回之前执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY