
静态变量是在类加载时甚至在静态块执行之前创建的,静态块的目的是为静态变量赋值。静态变量存储在定义它的类的所有实例之间共享的值,静态块是首次加载类时执行的一段代码。如果我们想要在类加载时执行任何逻辑,则该逻辑需要放置在静态块内,以便在类加载时执行。
JVM 按照以下步骤来执行读取类中的静态成员::
- 从上到下识别静态成员
- 从上到下执行静态变量赋值和静态块.
- main方法的执行。
示例
public class StaticFlow {
static int firstNumber = 10;
static {
firstMethod();
System.out.println("first static block");
}
public static void main(String[] args) {
firstMethod();
System.out.println("main method executed");
}
public static void firstMethod() {
System.out.println(secondNumber);
}
static {
System.out.println("second static block");
}
static int secondNumber = 20;
}输出
0 first static block second static block 20 main method executed











