单例模式

顾名思义,单例模式就是要求只有一个实体对象。

单例模式分为懒汉式和饿汉式

饿汉式:一开始就创建对象,线程安全,但是如果用不到这个对象,会造成浪费

懒汉式:要的时候才创建,不会造成浪费,但是会有线程安全的问题.

饿汉式和懒汉式都是私有化构造函数,不让外面能够直接new 对象.

饿汉式

private static Hungry instance = new Hungry();

    private Hungry(){}


    public Hungry getInstance(){
        return instance;
    }

 

懒汉不安全式

public class LazyUnSafe {

    private LazyUnSafe instance;

    public LazyUnSafe getInstance(){
        if(instance == null){
            instance = new LazyUnSafe();
        }
        return instance;
    }
}

 

懒汉安全式

public class LazySafe {

    private LazySafe instance;

    private LazySafe(){}

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

 

posted @ 2020-07-14 19:59  jesscia5  阅读(109)  评论(0编辑  收藏  举报