我有一个类结构,如下面的存储静态最终常量:
public final class A{
//..list of constants
public final class B{
//..list of constants
public final class C{
// ..list of constants
}
}
}
如果我需要在某个线程中访问C类的静态常量(比如说它们大约10个),那么这两种方法中的哪一种更好(更快)?它甚至有所作为吗?这是一些特定于VM的优化吗?我在Android平台上运行此代码:
void doIt(){
A.B.C temp;
S.O.P(temp.FIELD1);
S.O.P(temp.FIELD2);
...
S.O.P(temp.FIELD10);
}
//OR
void doIt(){
S.O.P(A.B.C.FIELD1);
S.O.P(A.B.C.FIELD2);
...
S.O.P(A.B.C.FIELD10);
}
答案 0 :(得分:2)
第一个例子不会编译,因为你没有初始化变量'temp'。既然你说你只是访问静态成员,实例化它将是完全没有意义的。
静态最终原语通常会被编译器内联,所以就性能而言,它从你得到它的地方绝对没有区别。