单例模式——静态内部类懒加载方案

单例模式的实现方法众多,但在多线程环境下,通过静态内部类的方案既能保证线程安全,又能在调用时才加载。具体示例如下:

public class SingleTon {// 利用静态内部类特性实现外部类的单例 private static class SingleTonBuilder { private static SingleTon singleTon = new SingleTon(); }// 私有化构造函数 private SingleTon() { } public static SingleTon getInstance() { return SingleTonBuilder.singleTon; } public static void main(String[] args) { SingleTon instance = getInstance(); } }

【单例模式——静态内部类懒加载方案】原理:加载SingleTon时,静态内部类SingleTonBuilder不会被同时加载。当访问其静态变量、方法时,静态内部类才被加载并初始化。
单例模式——静态内部类懒加载方案
文章图片
image.png

    推荐阅读