示例1
public class SomeClass {
private static final int onlyUsedByMethodFoo = 1;
// many lines of code
public static void foo() {
final String value = items[onlyUsedByMethodFoo];
}
}
示例2
public class SomeClass {
// many lines of code
public static void foo() {
final int onlyUsedByMethodFoo = 1;
final String value = items[onlyUsedByMethodFoo];
}
}
我更喜欢第二个代码示例,因为它的值在使用它的地方很接近。它只由Foo()使用。即使Foo()被频繁调用,我也看不出将其声明为全局值的优势。我唯一能看到的全局静态值的优点可能是性能方面的,但不清楚这会带来多大的性能优势。也许Java认识到了这一点并优化了字节码。
关于性能方面,是否值得全局声明常量值?性能收益是否可以证明将常量值远离程序员使用和阅读的位置的行为?