单例模式(静态内部类实现方式)

使用静态内部类实现懒加载

class Singleton7{
    //私有构造器
    private Singleton7(){
    }
    //编写静态内部类,该类中有一个静态属性Singleton,
    //这个类加载的时,内部类不会加载,实现懒加载的方式
    private static class SingletonInstance{
        private static final Singleton7 INSTANCE = new Singleton7();
    }
    //提供一个静态的公有方法,直接返回SingletonInstance.INSTANCE
    public static Singleton7 getInstance(){
        return SingletonInstance.INSTANCE;
    }
}

内部类在类加载的时候不会被实例化,实现懒加载的方式,同时类加载的时候是线程安全的。类的静态属性只会在第一次加载时初始化,JVM在帮助我们保证了线程的安全性。推荐使用。

你可能感兴趣的:(java,设计模式)