温馨提示×

Java成员变量静态代码块执行时机是什么

小樊
82
2024-10-12 03:21:49
栏目: 编程语言

在Java中,静态代码块(也称为静态初始化器)是一种特殊的代码块,用于初始化类级别的静态变量和执行仅需要执行一次的操作。静态代码块的执行时机是在类被加载到Java虚拟机(JVM)时进行的。具体来说,静态代码块的执行顺序是根据它们在类中的顺序。当类被加载时,静态代码块会按照它们在代码中出现的顺序被调用,并且每个静态代码块只执行一次。

需要注意的是,静态代码块仅在类被加载时执行一次,而不是在创建类的实例时执行。此外,静态代码块的执行顺序对于类的所有实例是相同的,因为它们都是基于同一个类加载的。

以下是一个简单的示例,说明了静态代码块的执行时机:

public class MyClass {
    static int staticVar1;
    static int staticVar2;

    static {
        System.out.println("静态代码块1开始");
        staticVar1 = 10;
        System.out.println("静态代码块1结束");
    }

    static {
        System.out.println("静态代码块2开始");
        staticVar2 = 20;
        System.out.println("静态代码块2结束");
    }

    public static void main(String[] args) {
        System.out.println("主方法开始");
        System.out.println("main方法结束");
    }
}

输出结果:

静态代码块1开始
静态代码块1结束
静态代码块2开始
静态代码块2结束
主方法开始
main方法结束

从输出结果可以看出,静态代码块是在类被加载时按照它们在代码中的顺序执行的,并且每个静态代码块只执行了一次。

0