某些類呢,建立比較頻繁,所以尤其是對於一些大型的物件,這是一筆大的系統開銷。
省去了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...