关于Java编程,你知道吗?final的几种用法

“谈谈final、关于finally、编程finalize有什么不同?知道种用”
这是个非常经典的问题。
finally是关于Java保证重点代码一定要被执行的一种机制。
finalize是编程基础类java.lang.Object的一个方法,它的知道种用设计目的是保证对象在被垃圾收集前完成特定资源的回收。
今天我们重点谈谈final,关于多年的编程面试经验告诉我,很多人其实失分就是知道种用在final上,而非另外两者。关于final可以用来修饰类、编程方法、知道种用变量,关于分别有不同的编程意义。
1.final修饰的知道种用class代表不可被继承扩展;
2.final修改的方法表示不可被重写(override);
3.final修饰的变量是不可被修改的。
如果你能够给出上面的云南idc服务商回答,至少及格了。但是这样的回答隐藏掉了很多信息,这里真正有变化的是当final修饰变量的时候。
首先,以上叙述还不够准确,精确地说“final修饰的变量一旦被赋值将不可被修改”。
请看如下代码:
public class MyClass { public MyClass(int foo) { this.foo = foo; } private final foo; }在这段代码中类MyClass的成员变量foo被修饰为final,但并没有对其赋值,而是在构造函数中为其指定的取值。
当然你不能就此认为“final修饰的变量是不可被修改的”说法错误,但至少没有表达出这层意思。
其实Java语言这样设计是有道理的,利用这一特性可以达到这样的目的:当我们发明一个类的时候,有时会发现有一些需要外部传入的参数,源码下载我们希望一旦被确定后,在对象被销毁之前不希望其被改变。遇到这种情况,我们就可以将这些参数定义为final的成员变量,然后外界只能够通过构造函数的参数指定。
final是否可以用来修饰函数参数或者内部变量?
答案是肯定的。事实上这种行为是被推荐的,因为这样可以确保变量不会被意外修改。而且被final修饰过的变量与参数还可以被传递给匿名类,例如:

Java在实现内部类时,实际会拷贝一份,不是去直接使用局部变量,final在这里可以防止出现数据一致性的问题。
外界有很多文章或者数据中还会介绍,final也许会有性能的好处。
比如,利用final可能有助于JVM将方法进行内联,可以改善编译器进行条件编译的能力等等。
坦白说,很多类似的结论都是香港云服务器基于假设得出的,比如现在高性能JVM(如HotSpot)判断内联未必依赖final的提示,要相信JVM还是非常智能的。
类似的,final变量对性能的影响,大部分情况下,并没有考虑的必要。不要指望这样的小技巧带来所谓的性能好处。相反,使用final更重要的理由,应该是为提高代码可读性,防止变量被意外修改。
***还要强调,final虽然会带来不可变的效果,但并不意味着任何情况下都是如此。比如final修饰java.util.List类型的变量,并不会防止列表内容被修改。实际的效果是防止变量指向的List对象不会被再次创建。而如果你需要的是一个不允许修改的List,则可以使用Collections.unmodifiableList()得到。
相关文章
360儿童手表SE(解读360儿童手表SE的功能与特点,给孩子提供全面的保护与娱乐)
摘要:如今,随着科技的发展,智能手表已经成为了很多人生活中不可或缺的一部分。而对于家长来说,给孩子配备一款合适的智能手表是非常重要的。360儿童手表SE作为一款专为孩子设计的智能手表,具...2025-11-05
上一篇我们将redis哨兵初始化分析完成,接下来我们就可以开始分析redis如何通过raft完成哨兵leader选举,并完成主从节点故障转移工作,因为篇幅原因,关于redis故障转移的内容将分为两个篇2025-11-05
SeaTunnel 同步 MySQL 到 Doris 的优化策略
在数据仓库建设过程中,数据同步是一个关键环节。SeaTunnel作为一个高性能的分布式数据集成工具,被广泛用于将MySQL数据同步到Doris等OLAP数据库。然而,如何优化这个同步过程,提高效率并减2025-11-05
现如今,全球连接的设备比人口总数还多。分析公司 Gartner的收集的数据显示,2017 年约有 84 亿台设备连接到互联网,而到 2020 年这一数字就增长到超过 200亿台。数字设备的使用是全球温2025-11-05
搜狗拼音Linux版发布后,Fcitx PPA便移除了搜狗拼音,对于想继续使用Fcitx的用户而言,可以安装谷歌拼音来实现中文输入。假如你使用的是Ubuntu Gnome,在安装谷歌拼音前还需要删除I2025-11-05
在追求GenAI带来的生产力提升的过程中,大多数企业都忽视了这样做可能带来的安全影响,转而倾向于寄希望于具有变革性的创新,而非采用可靠的安全实践。根据世界经济论坛与埃森哲合作进行的一项研究,63%的企2025-11-05

最新评论