即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

单例模式

编程语言 qq_34622600 37℃ 0评论

单例模式有懒汉式和饿汉式


先来懒汉式

public class Singleton {
    private static Singleton singleton;
    private  Singleton(){}
    public static Singleton getInstance(){
        if(singleton==null){            

                    singleton = new Singleton();

        }
        return singleton;
    }


}

以上实现单例模式不是线程安全的

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

这种方式交double-check检查两次,保证并发安全以及性能。

饿汉式

    private static Singleton singleton =  new Singleton();
    public  Singleton(){}
    public static Singleton getInstance(){
        return singleton;
    }

由于静态成员是随类加载而加载的,并且在内存中只有一份。

转载请注明:CodingBlog » 单例模式

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情