我的问题主要是关于性能的。编译器更清楚,例如,某些变量在对象实例化后未被修改。那么,为什么要打扰 final ?
我想这里可能会出现许多结构/逻辑原因,但从性能的角度来看呢?重要吗?
谢谢,
最佳答案
在现代 JVM 中,final 不应影响性能。对于私有(private)字段尤其如此,但即使对于非私有(private)字段,JIT 也可以优化非最终字段,认为它们是最终字段,然后 deoptimize如果它加载了一些实际上确实修改了该字段的代码。
也就是说,使用 final 的主要原因不是性能,而是让您的代码更易于维护。通过将字段设置为最终字段,您可以减少代码读者必须考虑的“移动部件”数量,从而更容易推理代码。
关于java - 如果没有在代码中修改,我应该声明一个 java 字段 'final' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7067191/