当变量为编译器常量时,编译器会跳过初始化直接读取变量。
什么是编译器常量?什么是跳过初始化?
编译器常量:public static final String a = “CSDN”;
跳过初始化:如跳过static块的读取
示例:
public class Test {
public static void main(String[] args) {
System.out.println(Test2.a);
}
}
class Test2 {
public static final String a = "CSDN";
static {
System.out.print("OK");
}
}
输出:
CSDN
这是编译器为了加快运行速度的一种优化机制