静态变量是在类加载时甚至在执行静态块之前创建的,并且静态块的目的是为静态变量赋值。静态变量存储在其定义的类的所有实例之间共享的值,而静态块是在首次加载类时执行的代码部分。如果我们希望在类加载时需要执行任何逻辑,则需要将该逻辑放在静态块中,以便在类加载时执行该逻辑。
从上到下识别静态成员
从上到下执行静态变量分配和静态块。
执行的主要方法。
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