关于设计模式:单例模式DCL

铁子们有段时间没有更新了,最近忙着筹备面试,筹备过程中发现自己还须要积攒的切实是太多太多,每每学到新货色的感觉真是美好而又能源十足啊,持续蜷缩腰杆、致力后退

单例模式-DCL

双重查看判断,应用volatile关键字禁止指令重排,在多线程状况下创立平安的单例对象,间接上代码

public class Instance {

    /**
     * volatile 禁止指令重排,依照代码执行程序先赋值后创建对象
     */
    private volatile static Instance instance;

    private String instName;

    private Instance() {
        instName = "DCL";
    }

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

单例模式-外部类

应用外部类结构单例对象,JVM保障单例

public class Instance {

    private static class InstanceObj {
        private static final Instance INSTANCE = new Instance();
    }

    public static Instance getInstance() {
        return InstanceObj.INSTANCE;
    }
}

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

阿里云限时活动-2核2G-5M带宽-40-100G SSD服务器,特惠价86元/年(原价724元/年,限时99元续购三次),速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据