java 静态初始化


在Java中,静态初始化是指在类加载时执行的初始化操作,而不是在实例化对象时执行的操作。

以下是Java中静态初始化的示例:

public class MyClass {
    static int num;
    static {
        num = 10;
        System.out.println("静态初始化块执行了");
    }
}

在上面的示例中,MyClass类中有一个静态变量num和一个静态初始化块,它们在类加载时执行。在静态初始化块中,将num初始化为10,并在控制台上打印一条消息。

在类第一次被加载时,静态初始化块将被执行。这将为静态变量分配空间并将其初始化为默认值(在这种情况下为0),然后执行静态初始化块中的代码,将num设置为10并打印一条消息。

在这之后,如果创建MyClass类的新实例,不会再次执行静态初始化块。

除了静态初始化块之外,还有一种更简单的静态初始化方式,即使用静态初始化器来初始化静态变量。这种方法可以在声明静态变量时使用花括号来包含初始化值,例如:

public class MyClass {
    static int[] numbers = {1, 2, 3};
}

在这种情况下,当类被加载时,numbers数组将被分配空间并初始化为包含三个元素的数组,这些元素分别为1、2和3。

需要注意的是,静态初始化块和静态初始化器的执行顺序是根据它们在类中的声明顺序而定的。也就是说,静态初始化块中的代码总是在静态初始化器中的代码之前执行。

静态初始化块和静态初始化器的作用是在类被加载时为静态变量赋值。这些变量在整个类的生命周期内保持不变,因此它们适用于保存与类相关的常量或配置信息等数据。


原文链接:codingdict.net