Java设计模式之多线程环境下的单例模式(Singleton)

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。

这样的模式有几个好处:

1、某些类创建比较频繁,这是一笔很大的系统开销。

2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。

一、懒汉模式

public class Singleton {
    // 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载
    private static Singleton instance = null;

    //私有构造方法,禁止私自创建对象
    private void Singleton(){}

    // 创建单例对象
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class){// 持有类锁,保证线程安全
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

二、饿汉模式

public class Singleton {
    // 服务器启动时创建
    private static Singleton instance = new Singleton();

    private Singleton(){}

    public static Singleton getInstance(){
        return instance;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章