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