javac或Hotspot会自动添加’final’作为不变变量的优化吗?
作者:互联网
共识似乎是将成员变量标记为final有一个性能优势,因为它们永远不需要从主内存重新加载.我的问题是,当变量无法改变时,javac或Hotspot会自动为我做这件事.例如,javac将在下面的这堂课中制作’x’决赛……
public class MyClass {
private String x;
MyClass(String x) {
this.x = x;
}
public String getX() {
return x;
}
}
在次要问题上,有没有人提出经验证据表明成员最终会使代码运行得更快?在进行远程调用或数据库查找的任何应用程序中,任何好处肯定都可以忽略不计?
最佳答案:
像许多性能“增强”一样,通常更好的问一下;什么更容易理解和推理?例如如果一个领域是最终的,我知道它不会在任何地方改变.这通常会导致更优化的代码,但更重要的是它应该是更易于维护的代码.
标签:compiler-construction,final,java,jvm-hotspot 来源: https://codeday.me/bug/20190515/1109314.html