單例和多例

2021-08-20 02:11:47 字數 1205 閱讀 9409

單例模式

兩種寫法:

一.懶漢式:

最簡單的寫法:怕多執行緒

中間的寫法:無法實現多執行緒

雙鎖的寫法:實現了執行緒安全,並保留了多執行緒。

特點: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.單例模式的物件...