在Java中,静态代码块(也称为静态初始化器)是一种特殊的代码段,用于初始化类级别的静态变量和执行仅需要执行一次的操作。静态代码块在类被加载到JVM时自动执行,且仅执行一次。
静态代码块的执行顺序是根据它们在类中的顺序。当类被加载时,静态代码块按照它们在代码中出现的顺序依次执行。如果有多个静态代码块,那么它们将按照顺序执行,而不是并行执行。
以下是一个简单的例子,说明了静态代码块的执行顺序:
public class MyClass { static int a; static int b; static { System.out.println("静态代码块1"); a = 10; System.out.println("静态代码块1 - a = " + a); } static { System.out.println("静态代码块2"); b = 20; System.out.println("静态代码块2 - b = " + b); } public static void main(String[] args) { System.out.println("主方法"); } }
输出结果:
静态代码块1 静态代码块1 - a = 10 静态代码块2 静态代码块2 - b = 20 主方法
从输出结果可以看出,静态代码块按照它们在类中的顺序执行。首先执行静态代码块1,然后执行静态代码块2。在静态代码块中,对静态变量的赋值操作会在静态代码块执行完毕后才进行。