m-yb

瞎扯设计模式1:单例模式 饿汉模式 懒汉模式 线程安全的单例 singleton 设计模式 java

【原创声明】此文为本人原创,欢迎转载,转载请注明出处,作者链接~

单例很常用,面试也经常被问,如:不用自定义锁怎么实现线程安全的单例?

下面我将分别介绍饿汉、懒汉的单例(都是线程安全的):

饿汉单例:

package com.dayuanit.utils.hungry;

public class Singleton {
    private static final Singleton instance = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }
}

懒汉单例:

package com.dayuanit.utils.lazy;

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

 

上述两种单例可以用如下方式检验是否为单例,true则为单例:

package com.dayuanit.utils.hungry;

public class Test {
    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();

        System.out.println(singleton1 == singleton2);

    }
}

完毕,各位看官觉得很赞的,留言评论,点赞~

  没有英汉互译结果
  请尝试网页搜索

posted on 2018-04-14 17:29 m-yb 阅读(...) 评论(...) 编辑 收藏

相关文章:

  • 2022-01-14
  • 2018-07-21
  • 2021-07-17
  • 2021-07-05
  • 2021-08-27
  • 2019-03-29
  • 2018-03-15
  • 2021-11-29
猜你喜欢
  • 2021-05-19
  • 2021-11-24
  • 2021-07-13
  • 2021-10-20
  • 2019-05-24
  • 2021-04-03
  • 2021-07-20
相关资源
相似解决方案