JavaSE 單例和多例

2021-09-02 04:37:28 字數 1444 閱讀 8040

一、單例設計模式

定義:乙個類只能允許例項化乙個物件

//餓漢式單例

public class test

public static test getinstance()

public void print()

}

特點:立即初始化——餓漢式單例:立即載入,執行緒安全,記憶體可能會浪費

//懶漢式單例

public class singleton2

public static singleton2 getinstance()

return instance;}}

特點:延遲例項化,執行緒不安全——懶漢式單例,不使用物件時可以節省記憶體空間

//靜態內部類

public class singleton3

public static singleton3 getinstance()

private static class singleton3instance

}

特點:避免了執行緒不安全,延遲載入,效率高

//列舉

public enum singleton4

}

二、多例設計模式

定義:

//描述性別的類,多例實現

public class gender

public static gender getinstance(int type)

}public string getvalue()

}

測試**:

列舉類實現多例

1.列舉類:天生自帶private構造方法

2.指定例項化物件,構造方法之前

3.列舉類同樣可以指定成員屬性,通常屬性實在構造時初始化,並提供getter

4.訪問列舉類的例項化直接通過類名訪問,類名.例項化的物件名

5.獲取列舉類的所有例項化物件通過 類名.values();

6.通過列舉的例項化物件名(常量名)獲取物件 類名.valueof(name)

public enum gender1 

public string gettype()

}

測試**:

單例和多例

單例模式 兩種寫法 一.懶漢式 最簡單的寫法 怕多執行緒 中間的寫法 無法實現多執行緒 雙鎖的寫法 實現了執行緒安全,並保留了多執行緒。特點 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。public class user private ...

單例和多例的區別

單例模式的物件在整個系統中只有乙份,也就是只有乙個物件,而多例模式可以有多個。在記憶體當中體現為單例模式只占用乙份儲存空間,節約伺服器資源而多例模式每次例項化都要新開闢一快記憶體 單例模式記憶體分析可參考 在應用上單例模式多用於多執行緒類業務如購票系統 秒殺系統,通過物件鎖確保物件全域性唯一,防止程...

Java的單例和多例

單例多例需要搞明白兩個問題 1.什麼是單例多例 2.如何產生單例多例 3.為什麼要用單例多例 4.什麼時候用單例,什麼時候用多例 1.什麼是單例 多例 所謂單例就是所有的請求都用乙個物件來處理,應用中只有乙個物件例項。一 單例模式和多例模式說明 1.單例模式和多例模式屬於物件模式。2.單例模式的物件...