单例模式

来源:互联网 发布:php 设置头部 编辑:程序博客网 时间:2024/06/18 04:39

单例模式:确保一个类只有一个实例,并提供一个全局访问点。

这里写图片描述
下面我们介绍几种常见的实现方式。

1. 饿汉式:线程安全

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

2. 懒汉式:非线程安全

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

3. 使用synchronized:线程安全

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

4. 双重检查加锁:线程安全

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