java - 如果没有在代码中修改,我应该声明一个 java 字段 'final' 吗?

标签 java performance final

我的问题主要是关于性能的。编译器更清楚,例如,某些变量在对象实例化后未被修改。那么,为什么要打扰 final ?

我想这里可能会出现许多结构/逻辑原因,但从性能的角度来看呢?重要吗?

谢谢,

最佳答案

现代 JVM 中,final 不应影响性能。对于私有(private)字段尤其如此,但即使对于非私有(private)字段,JIT 也可以优化非最终字段,认为它们是最终字段,然后 deoptimize如果它加载了一些实际上确实修改了该字段的代码。

也就是说,使用 final 的主要原因不是性能,而是让您的代码更易于维护。通过将字段设置为最终字段,您可以减少代码读者必须考虑的“移动部件”数量,从而更容易推理代码。

关于java - 如果没有在代码中修改,我应该声明一个 java 字段 'final' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7067191/

相关文章:

java - 关闭 JFrame 窗口后启动事件

java - Eclipse 自动空白禁用

java - solr avgTimePerRequest 统计数据以毫秒还是秒为单位? ( Solr 3.5)

java - 为什么 String 在 Java 中是不可变的或最终的

java - 如何让我的文字之一垂直打印?

javascript - 在循环中使用 JavaScript 正则表达式文字会消耗不必要的内存吗?

c# - 将大量ID发送到SQL Server进行过滤时,有没有办法提高性能?

java - 什么时候应该使用 final 作为方法参数和局部变量?

java - Brian Goetz 谈 'final' 关键字

java - Icefaces selectMultipleCheckbox 已选中