【发布时间】:2013-05-09 00:22:31
【问题描述】:
在 Java 中对非原始静态数据使用 final 修饰符是否有任何性能提升?
例如:
static final Thread t2 = new Thread(new Thread_2());
对比:
static Thread t2 = new Thread(new Thread_2());
我的意思是,原语的静态 final 定义了一个真正的常量,并且可以很好地使用,因为它的值在编译时是已知的,但是在这种非原始情况下使用 final 会触发任何优化吗?
在这种情况下使用 final 有什么作用还是浪费?
请不要在风格方面/良好实践方面提供答案,但仅限于性能方面。
【问题讨论】:
-
final与“性能”无关。它们也不是“在编译时就知道的”。 -
@Brian Roach 你是什么意思?静态最终原语的值在编译时是已知的。例如: static final int me = 10;
-
在您的声明中错过了
static部分,但这并没有真正改变任何事情。
标签: java performance final primitive compiler-theory