一、單例設計模式
定義:乙個類只能允許例項化乙個物件
//餓漢式單例
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.單例模式的物件...