Lazy loading of static inner classes in singleton mode

/**
 * @author 苏雪夜酒
 * @version 1.0
 * @date 2022/4/30 23:11
 * 通过静态内部类可以实现懒汉式的单例模式,且效率高
 */
public class SingletonInnerClass {
    public static void main(String [] args){
        for (int i = 0; i < 30; i++) {
            new Thread(()->{
                Singleton singleton = Singleton.getInstance();
                System.out.println(singleton);
            }).start();
        }
    }
}
class Singleton{
    //无参构造方法 私有
    private Singleton(){};
    //静态内部类
    private static class StaticInnerClass{
        private static Singleton innerClass = new Singleton();
    }
    public static Singleton getInstance(){
        return StaticInnerClass.innerClass;
    }

}

Guess you like

Origin blog.csdn.net/mnimxq/article/details/124521771