线程安全的单例模式-枚举篇

/**
 * 枚举模式:枚举类型是单例的,构造器私有。单例设计的原因是:枚举类型的值(属性)不需要改变。
 */
public class SingletonExample {

    // 私有构造函数
    private SingletonExample() {

    }

    public static SingletonExample getInstance() {
        return Singleton.INSTANCE.getInstance();
    }

    private enum Singleton {
        INSTANCE;

        private SingletonExample singleton;

        // JVM保证这个方法绝对只调用一次
        Singleton() {
            singleton = new SingletonExample();
        }

        public SingletonExample getInstance() {
            return singleton;
        }
    }
}

你可能感兴趣的:(java,单例模式,线程安全)