将变量声明为最终的内部方法和性能

时间:2017-06-23 11:56:33

标签: java performance

在方法中将变量声明为final是否会从最新java版本的性能/内存观点中获益?

我不是在谈论任何其他好处。

这个问题Does use of final keyword in Java improve the performance? 大约在7年前被添加,自那时以来取得了一些进展。

2 个答案:

答案 0 :(得分:3)

不,本地变量上的final关键字没有性能影响,即使在理论上它也不可能,因为.class文件不保留此信息。

有关详细信息,请参阅this answer

答案 1 :(得分:1)

如果我们讨论变量,

final关键字对性能没有直接影响,但在某些用例中可以提高性能。
示例:

  1. 在循环中迭代时,如果变量为final,则JIT不会检查是否有任何可能更改列表值的原因(reference)。
  2. final允许将变量内联到调用代码中,这样可能会导致一些内存和性能提升。如果类(reference)中有许多公共静态最终字符串,则使用此方法。
  3. final关键字可提高效果。不仅JVM可以缓存最终变量,而且应用程序可以经常缓存使用最终变量(check here for 3 and 4)。
  4. final关键字允许JVM优化方法,变量或类。