假如有一天,你要找工作,等到了面试邀请,来到了面试公司,做完了笔试题,迎来了面试官。

面试官的第一个问题确是:你如何用一段代码证明在JVM加载类是懒加载模式?

来来来,都坐下,先看看这段代码,思考一下结果。
public class SuperClass {
static {
System.out.println("SuperClass init");
}
public static int value = 10;
}
class SubClass extends SuperClass {
static {
System.out.println("SubClass init");
}
}
class TestClass {
public static void main(String[] args) {
System.out.println(SubClass.value);
}
}
上述代码,只会输出:
SuperClass init10
而不会

本文通过一个面试场景,探讨如何使用代码证明JVM的类加载是采用懒加载策略。通过分析不同代码示例,解释了为何在特定情况下,子类不会被初始化,静态字段引用不会触发子类加载,以及常量池中的引用不会执行静态代码块,从而阐述了JVM的类加载机制。
625

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



