编程语言
首页 > 编程语言> > javac或Hotspot会自动添加’final’作为不变变量的优化吗?

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