單例模式(餓漢式和懶漢式)
餓漢式單例模式,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...