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

2017-08-02  本文已影响0人  zizi192

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

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
上一篇 下一篇

猜你喜欢

热点阅读