之前在实现单例模式时可以基于静态内部类的方式来实现。静态内部类有延迟加载的作用。
public class OuterClass {
static {
System.out.println("Outer class load");
}
static class InnerClass{
static {
System.out.println("Inner class load");
}
}
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
// InnerClass innerClass = new InnerClass();
}
}
输出
Outer class load
Process finished with exit code 0
实例化静态内部类,则外部类也被加载
public class OuterClass {
static {
System.out.println("Outer class load");
}
static class InnerClass{
static {
System.out.println("Inner class load");
}
}
public static void main(String[] args) {
// OuterClass outerClass = new OuterClass();
InnerClass innerClass = new InnerClass();
}
}
输出
Outer class load
Inner class load
Process finished with exit code 0
本文探讨了Java中使用静态内部类实现单例模式的方法,强调了其延迟加载的优势。在不实例化内部类时,外部类不会被加载,只有在需要时才会加载内部类,从而实现单例的懒汉式加载。示例代码展示了如何通过静态内部类创建单例,并观察了不同实例化情况下的类加载顺序。

2219

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



