Java中静态变量与类加载顺序的关系

原创 古城微笑少年丶 2024-12-13 13:15 69阅读 0赞

在Java中,静态变量(static variable)的初始化时机和类的加载顺序有密切关系。

  1. 类加载顺序:

    • 加载:解释器读取JAR文件或类路径中的类定义信息,并将其转化为类字节码。
    • 链接:生成的类字节码被合并成一个大的方法区,这个方法区相当于Java虚拟机(JVM)的永久代。
    • 初始化:在类加载阶段不会执行静态初始化块(static initialization block),而是在类实例化或调用类成员方法时通过反射机制执行。
  2. 静态变量:

    • 类加载完成后,无论是否创建该类的对象,静态变量都会被初始化。
    • 如果在类的声明之前就使用了这个类的静态变量,那么Java解释器会在编译阶段报错,因为此时类还没加载。

总结:在Java中,静态变量的初始化是在类加载完成后立即进行的。而类的加载顺序是先加载后链接初始化。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java 顺序

    类加载顺序: (1)父类静态对象和静态代码块 (2)子类静态对象和静态代码块 (3)父类非静态对象和非静态代码块 (4)父类构造函数 (5)子类 非静态对象和非静态代