懶漢和餓漢單例的區別

2021-05-24 11:15:21 字數 519 閱讀 4869

首先來看餓漢單例模式:

public class eagersingleton

private static eagersingleton instance = new eagersingleton();  //餓漢式在類被建立的時候就建立例項

public static eagersingleton getinstance()

}下面來看下懶漢單例模式:

public class lazesingleton

private static lazesingleton instance = null; //懶漢式單例是延時載入,什麼時候用什麼時候建立例項

public static lazesingleton getinstance()

return instance;}}

餓漢式是執行緒安全的,在類被建立的時候就被建立了乙個靜態的物件供系統使用,以後不再改變

懶漢式如果在建立時不被加上synchronized則會導致物件的訪問不是執行緒安全的

推薦使用第一種

懶漢單例餓漢單例

設計模式 單例 設計模式 23個設計模式 建立型行為型 結構型架構模式 戰略 單例 單態 如何能保證乙個類只出乙個物件?懶漢式 缺點 訪問速度慢 優點 使用才載入物件 synchronized 同步可以解決懶漢式問題 餓漢式 優點 訪問速度快 缺點 提前載入 下面說一下懶漢式和餓漢式的區別及優點 餓...

單例模式的餓漢和懶漢

單例模式就是要確保類在記憶體中只有乙個物件,該例項必須自動建立類,並且對外提供。優點 在系統記憶體中只存在乙個物件,一次可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。缺點 1.沒有抽象層,因此擴充套件很難。2.指責過重,在一定程式上違背了單一職責。餓漢式和懶漢式的...

餓漢單例與懶漢單例

餓漢單例 執行緒安全 public class mon public static mon getinstance public static mon getinstance if instance null 此時還沒有例項化 instance new mon return instance pub...