[ 单例模式 ] 的常用写法

1.饿汉式

优点 : 写法比较简单 , 在类加载的时候 , 完成实例化 , 避免了线程同步问题。
缺点 : 在类加载的时候完成实例化 , 如果这个类没有被使用过 , 就造成了内存的浪费。

public class Singleton {
    private  final static Singleton INSTANCE = new Singleton();

    private Singleton(){}

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

2.懒汉式

优点 : double check , 线程安全 , 延迟加载

public class Singleton {
    private static volatile Singleton singleton;

    public static Singleton getInstance(){
        if (singleton == null){
            synchronized(Singleton.class){
                if (singleton == null){
                    singleton = new Singleton();
                }
            }
        }
    }
}

你可能感兴趣的:([ 单例模式 ] 的常用写法)