談談單例模式中的懶漢式和餓漢式

2021-09-11 08:53:34 字數 894 閱讀 8192

某些類呢,建立比較頻繁,所以尤其是對於一些大型的物件,這是一筆大的系統開銷。

省去了new這個操作符,降低了對系統記憶體的使用頻率,減輕了gc壓力。

顧名思義,懶漢式只有在呼叫的時候才會去建立靜態物件 。

private static singletonlh singletonlh = null;

//建立乙個私有化無參構造,防止例項化

private singletonlh()

public static singletonlh getsingletonlh()

return singletonlh;

}

餓漢式是在專案啟動載入類的時候就建立了靜態物件,所以執行緒是安全的。

//餓漢式直接建立物件

private static singletoneh singletoneh = new singletoneh();

private string name;

public void singletoneh()

//在呼叫的時候就可以直接返回

public static singletoneh getsingletoneh()

public static void main(string args)
他們兩個最明顯的區別就是,因為餓漢式在類載入時就建立,所以說如果物件大的時候,會占用jvm資源,影響效率。懶漢式是延遲載入。從執行緒上的安全上來考慮,餓漢式還是更推薦些。當然你也可以為懶漢式配置雙重判定鎖。

public static singletonlh getsingletonlh()}}

return singletonlh;

}

單例模式中餓漢式和懶漢式

本文主要是本人對單例模式中餓漢式和懶漢式的一些理解 首先我們了解單例模式。何為單例模式,本人認為,只有不大於1個的例項物件可以被呼叫,那麼就可以被稱之為單例模式。那麼,餓漢式和懶漢式又是什麼呢?下面本人用例項展示自己對這兩者的理解 懶漢式 懶漢,從名字上來看就知道,懶麼,到了要用到的時候再去 餓漢式...

單例模式 懶漢式 和 餓漢式

單例模式三要素 a 私有構造方法 這樣外界就沒辦法建立物件 b 私有靜態引用指向自己例項 c 以自己例項為返回值的公有靜態方法 對外暴露介面獲取例項 在spring中建立的bean例項預設都是單例模式存在的。所謂 懶漢式 與 餓漢式 的區別,是在與建立單例物件的時間不同。懶漢式 是在你真正用到的時候...

單例模式 餓漢式和懶漢式

1.單例模式。singleton無論外界有多少物件都是乙個指向同乙個位址。節約空間。1 構造方法私有化 2 在本類中建立乙個static修飾的物件。3 所有的屬性必須私有化。4 通過乙個方法來把本類中建立的該物件返回。2.餓漢式 指全域性的單例例項在類裝載時構建。class people publi...