gpt4 book ai didi

java - javac 或 Hotspot 是否自动添加 'final' 作为不变变量的优化?

转载 作者:搜寻专家 更新时间:2023-10-31 19:49:43 24 4
gpt4 key购买 nike

共识似乎是将成员变量标记为 final 有性能优势,因为它们永远不需要从主内存重新加载。我的问题是,当变量显然无法更改时,javac 或 Hotspot 会自动为我执行此操作吗?例如,javac 是否会在下面的此类中使“x”成为最终...

public class MyClass {
private String x;

MyClass(String x) {
this.x = x;
}

public String getX() {
return x;
}
}

第二点,是否有人提供了经验证据表明将成员标记为 final 可以使代码运行得更快?在进行远程调用或数据库查找的任何应用程序中,任何好处肯定可以忽略不计?

最佳答案

像许多性能“增强”一样,询问通常更好;什么更容易理解和推理?例如如果一个字段是最终的,我知道它不会在任何地方改变。这通常会导致更优化的代码,但更重要的是它应该是更易于维护的代码。 ;)

当然,我把任何可以是 final 的字段都设为 final。就我个人而言,我更希望 final 成为默认行为,并且您必须使用 var 之类的关键字来使其可变。

关于java - javac 或 Hotspot 是否自动添加 'final' 作为不变变量的优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5549565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com