單例模式
兩種寫法:
一.懶漢式:
最簡單的寫法:怕多執行緒
中間的寫法:無法實現多執行緒
雙鎖的寫法:實現了執行緒安全,並保留了多執行緒。
特點:1、單例類只能有乙個例項。
2、單例類必須自己建立自己的唯一例項。
3、單例類必須給所有其他物件提供這一例項。
public class user
private static user user=null;
//靜態工廠方法
public static user getuser() }
以上懶漢式單例的實現沒有考慮執行緒安全問題,它是執行緒不安全的,併發環境下很可能出現多個user例項,要 實現執行緒安全如下 第一種在getuser方法上加同步:
public class user
private synchronized static user user=null;
//靜態工廠方法
public static user getuser() }
第二種是雙重檢查鎖定
package com.zhiyou100.model;
public class user
//3 建立我們的user工廠
public static user getuser()
//3 建立我們的user工廠
public static user getuser()
public static people getpeople(string ***)
if(***.equals("woman")) } }
執行緒安全的寫法:
package com.zhiyou100.model;
public class people
public static people getpeople(string ***) else }
if(***.equals("woman")) }
return woman; }
else {
return woman;
return null;
JavaSE 單例和多例
一 單例設計模式 定義 乙個類只能允許例項化乙個物件 餓漢式單例 public class test public static test getinstance public void print 特點 立即初始化 餓漢式單例 立即載入,執行緒安全,記憶體可能會浪費 懶漢式單例 public cl...
單例和多例的區別
單例模式的物件在整個系統中只有乙份,也就是只有乙個物件,而多例模式可以有多個。在記憶體當中體現為單例模式只占用乙份儲存空間,節約伺服器資源而多例模式每次例項化都要新開闢一快記憶體 單例模式記憶體分析可參考 在應用上單例模式多用於多執行緒類業務如購票系統 秒殺系統,通過物件鎖確保物件全域性唯一,防止程...
Java的單例和多例
單例多例需要搞明白兩個問題 1.什麼是單例多例 2.如何產生單例多例 3.為什麼要用單例多例 4.什麼時候用單例,什麼時候用多例 1.什麼是單例 多例 所謂單例就是所有的請求都用乙個物件來處理,應用中只有乙個物件例項。一 單例模式和多例模式說明 1.單例模式和多例模式屬於物件模式。2.單例模式的物件...