在 Java 中对非原始静态数据使用 Final 修饰符是否会带来性能提升?
例如:
static final Thread t2 = new Thread(new Thread_2());
对比:
static Thread t2 = new Thread(new Thread_2());
我的意思是,基元的 static final 定义了一个真正的常量,并且很适合使用,因为它的值在编译时已知,但是在这种非基元情况下使用 Final 可以触发任何优化吗?
在这种情况下使用final有作用还是浪费?
请不要回答风格/良好实践的问题,而只回答性能方面的问题。
最佳答案
如果 JVM 知道某个值永远不会改变,它可以进行一些优化(例如,禁用 null 检查),因此这会带来一些小的性能提升。然而,在几乎所有情况中,这种增益都太小而无法被注意到或担心。我对你的程序不太了解,但我猜想花时间制作变量 final
最好花在开发更有效的算法上。
关于java - 对非原始静态数据使用 Final 修饰符是否会带来性能提升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16452360/