单例模式

1、饿汉模式

public class Singleton {

    private static Singleton instance = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {

    return instance;

    }

}

2、懒汉模式

public class Singleton {

    private static Singletoninstance;

    private Singleton() {}

    public static synchronized SingletongetInstance() {

        if(instance ==null) {

            instance =new Singleton();

           }

        return instance;

    }

}

3、双重检测

public class Singleton {

    private static volatile Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {

        if (instance == null) {

            synchronized(Singleton.class) {

                // 此处为类级别的锁

                if (instance == null) {

                    instance = new Singleton();

                }

            }

        }

        return instance;

  }

4、静态内部类

public class Singleton {

    private Singleton() {}

    private static class SingletonHolder{

    private static final Singletoninstance =new Singleton();

    }

    public static SingletongetInstance() {

    return SingletonHolder.instance;

    }

}

5、枚举类

public enum Singleton{

INSTANCE;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 定义 一个类只有一个实例,自行实例化并提供给整个系统。 基本思路 将该类构造函数私有化,并通过静态方法获取一个唯一...
    剧透下阅读 1,855评论 0 0
  • 第一种(懒汉,线程不安全): public class Singleton { private static ...
    Cherry300阅读 1,292评论 0 2
  • 第一种(懒汉,线程不安全): public class Singleton { private static Si...
    墨雨轩夏阅读 5,238评论 4 41
  • 单例模式(Singleton Pattern)是众多设计模式中较为简单的一个,同时它也是面试时经常被提及的问题,如...
    廖少少阅读 3,746评论 0 1
  • 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属...
    超级小学生1阅读 2,701评论 0 0

友情链接更多精彩内容