package com.gcq.mine.jvm;
public class SuperClass {
static {
System.out.println("SuperClass init!");
}
public static int value = 123;
public class SuperClass {
static {
System.out.println("SuperClass init!");
}
public static int value = 123;
}
package com.gcq.mine.jvm;
public class SubClass extends SuperClass{
static {
System.out.println("SubClass init!");
}
}
package com.gcq.mine.jvm;
public class NotInitialization {
public static void main(String args[]){
System.out.println(SubClass.value);
}
}
上述代码运行之后, 只会输出SuperClass init!,而不会输出"SubClass init!"。
本文通过一个简单的Java示例代码,展示了当尝试访问子类静态字段时,Java虚拟机如何仅初始化父类而不初始化子类的过程。这有助于理解类加载机制中关于初始化阶段的具体行为。
1736

被折叠的 条评论
为什么被折叠?



