设计模式学习


一、单例模式

1.饿汉式,实例在初始化的时候就已经创建好,有点浪费内存空间,线程安全

/**
 * @Autor LZH
 * @Date 2020/1/3  22:33
 */
public class EHan {
    //饿汉式
    private static EHan instance=new EHan();
    //私有化构造器
    private EHan(){
    }
    public static EHan getInstance(){
        return instance;
    }
}

2.懒汉式,用的时候才去检查有没有实例,有线程安全和不安全的写法,此处为安全且效率较高的一种写法(双检锁)

public class LHan {
    private LHan(){}//私有化构造器

    private static LHan instance=null;//懒汉式

    public static LHan getInstance(){
        if (instance==null){
            synchronized(LHan.class){
                if(instance==null){
                    instance=new LHan();
                }
            }
        }
        return instance;
    }
}
java

评论