單例模式理解

2021-09-10 02:19:43 字數 832 閱讀 1862

單例模式:

三要素:

1、私有的構造方法;

2、私有的靜態的例項物件;

3、公共的靜態的提供訪問方法;

根據單例模式的建立時機可以將其分為兩種型別:

1、懶漢模式:在系統初始化時不會做初始化,會在什麼時候使用到時做初始化操作。

public class ehanmoshi{

private static lanhanmoshi ehanmoshi=null;

private lanhanmoshi (){

system.out.println("初始化懶漢模式");

public static lanhanmoshi getlanhanmoshi(){ 

if(lanhanmoshi==null){

lanhanmoshi=new lanhanmoshi ();

return lanhanmoshi;

2、餓漢模式:在系統初始化時就已經初始化完成。

public class ehanmoshi{

private ehanmoshi(){

system.out.println("餓漢模式初始化");

private static ehanmoshi ehanmoshi=new ehanmoshi();

public static ehanmoshi getehanmoshi(){

return ehanmoshi;

總結:懶漢模式在多執行緒中可能會造成返回單例模式的為多個,破壞單例模式。可以在返回例項的公共方法上加入

synchronized 修飾符修飾。

單例模式理解

摘要 本文首先概述了單例模式產生動機,揭示了單例模式的本質和應用場景。緊接著,我們給出了單例模式在單執行緒環境下的兩種經典實現 餓漢式 和懶漢式,但是餓漢式是執行緒安全的,而懶漢式是非執行緒安全的。在多執行緒環境下,我們特別介紹了五種方式來在多執行緒環境下建立執行緒安全的單例,即分別使用synchr...

理解單例模式

對單例模式這一部落格的理解。在多執行緒時不能正常工作,因為沒有加synchronized 所以嚴格來說不能算是單例模式。public class singleton public static singleton getinstance return instance public class si...

理解設計模式 單例模式

定義 確保要建立的類只有乙個例項 對於頻繁建立的物件,可以省略其建立時間,同時可以減輕gc的壓力 避免對共享資源的多重占用 使用場景 單例模式寫法很多,這裡列舉以下三種 1 最簡單的寫法 使用列舉物件public enum singletonenum使用列舉還可以避免反射獲取類的私有構造方法從而建立...