Java静态成员变量在哪初始化

在Java中,静态成员变量是属于类的成员变量,而不是属于对象的成员变量。静态成员变量只会在类加载的时候初始化一次,无论创建多少个对象,静态成员变量只有一份拷贝。

静态成员变量在哪里初始化?静态变量可以在声明时直接初始化,也可以在静态代码块中初始化。静态代码块是在类加载的时候执行,并且只执行一次。下面通过代码示例来说明静态变量的初始化。

代码示例

public class StaticVariableExample {
    // 直接初始化静态变量
    public static int staticVar1 = 10;
    
    // 在静态代码块中初始化静态变量
    public static int staticVar2;
    static {
        staticVar2 = 20;
    }

    public static void main(String[] args) {
        System.out.println("staticVar1: " + staticVar1);
        System.out.println("staticVar2: " + staticVar2);
    }
}

在上面的示例中,我们声明了两个静态变量staticVar1staticVar2,并对它们进行初始化。staticVar1直接在声明时初始化为10,而staticVar2在静态代码块中初始化为20。在main方法中输出这两个静态变量的值。

表格

下面是静态变量的初始化方式的比较:

初始化方式 示例代码 说明
直接初始化 public static int staticVar1 = 10; 在声明时直接给静态变量赋初值
静态代码块初始化 java static { staticVar2 = 20; } 在静态代码块中给静态变量赋初值

甘特图

下面是一个静态变量初始化的甘特图:

gantt
    title 静态变量初始化甘特图
    section 初始化阶段
        直接初始化 :done, 2021-03-01, 2021-03-01
        静态代码块初始化 :done, 2021-03-01, 2021-03-01

结论

静态成员变量在Java中的初始化可以通过直接初始化或者在静态代码块中初始化。无论哪种方式,静态变量只会在类加载的时候初始化一次,只有一份拷贝。在实际开发中,根据需要选择合适的初始化方式来保证静态变量的正确初始化。