大家先想一下,下面的例子输出结果是多少:
public class Test {
public static final String s = "aaaa";
static{
System.out.println("******* ");
}
}
public class TestMain {
public static void main(String[] args) {
System.out.println(Test.s);
}
}
结果应该是aaaa .因为 s 是一个被 final 修饰的静态变量 , static{}是静态块,只在类初始化时执行一次 final 修饰的静态块在被初始为一个编译时常量表达式。static 块内容是执行类初始化时才会执行的块