静态内部类

静态内部类(也是一种懒加载方式)

要点

  • 外部类没有static属性,不会像饿汉式那样立即加载对象
  • 只有真正调用getInstance()才会加载静态内部类。加载类时是线程安全的。instance是static final 型(final可加可不加),保证了只有一个实例存在,而且只能被赋值一次,从而保证了线程安全。
  • 兼备了并发高效调用和延迟加载的优势!
public class StaticInnerSingleton {

    private StaticInnerSingleton() {}
    
    private static class SingletonClassInstance{
        private static final StaticInnerSingleton instance = new StaticInnerSingleton();
    }
    
    public static  StaticInnerSingleton getInstance() {
        return SingletonClassInstance.instance;
    }
    
}

你可能感兴趣的:(静态内部类)