單例模式(餓漢式和懶漢式)

2021-09-27 10:45:09 字數 665 閱讀 3469

單例模式(餓漢式和懶漢式)

餓漢式單例模式,static表變數會在裝載時初始化,不會涉及多個執行緒物件訪問該物件的問題,虛擬機器只會保證裝載一次該類,不會發生併發的問題,可以省略synchronized關鍵字

缺點:如果只是載入本類,而不是呼叫getinstance方法,永遠不呼叫,則會造成資源浪費的問題

package cn.com.pattern;

public

class

singledemo01

//方法沒有同步,呼叫效率高

public

static singledemo01 getinstance()

}

懶漢式單例模式,延遲載入,懶載入,用的時候才載入,資源利用率高了

缺點:但是每次呼叫getinstance方法都需要同步,併發的效率低

package cn.com.pattern;

public

class

singledemo02

//方法同步,呼叫效率低

public

static

synchronized singledemo02 getinstance()

return instance;

}}

單例模式 懶漢式 和 餓漢式

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

單例模式 餓漢式和懶漢式

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

單例模式(餓漢式 懶漢式)

2.餓漢式 立即載入 3.懶漢式 延遲載入 定義 單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項,這個類稱為單例類,它提供全域性訪問的辦法。單例模式的要點有兩個 public class singleton 靜態方法,可以加入自定義控制,保證只產生乙個例項 public s...