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;
    }
}

 

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