懶漢式相比於餓漢式的優點就是延遲載入,但是如果在多執行緒中的話,懶漢式容易出問題,如果要考慮多執行緒的安全性,並且稍微提高一下懶漢式的速率,最好的辦法就是使用雙重判斷的方式,不過即使懶漢式在多執行緒中可以使用雙重判斷來解決,然而也不如餓漢式在多執行緒中的優勢,所以一般在多執行緒中我們選用餓漢式進行單例。
packageday6;
/**
* 單例設計模式 *
*@authormzy*
*/ public
class
test3{}
/** *
餓漢式 *
*/ class
single
public
static
single
getinstance() }
/** *
懶漢式
* 最開始我們學習的懶漢式寫法如下,但是這裡的懶漢式並未考慮多執行緒的問題 */
class
singledemo
public
static
singledemo
getinstance() }
/** *
經過改良的懶漢式 *
加上synchronized修飾
* * 但是同時可以看出,第一次改進的懶漢式效率很低下 *
因為每次進入都要事先進行一次是否為空的判斷 */
class
singledemo1
public
static
synchronized
singledemo1
getinstance() }
/** *
最終改良的懶漢式 *
*@authormzy*
*/ class
singledemolast
public
static
synchronized
singledemolast
getinstance() }
return
s; }
}
單例設計模式逐步講解
單例設計模式 instance例項 singleton patten單例模式 1.類圖分為三部分,依次是類名 屬性 方法 2.以結尾的為注釋資訊 3.修飾符 代表public,代表private,代表protected,什麼都沒有代表包可見。4.帶下劃線的屬性或方法代表是靜態的。5.對類圖中物件的關...
設計模式之單例模式的講解與應用
單例模式指的是在應用整個生命週期內只能存在乙個例項。單例模式是一種被廣泛使用的設計模式。他有很多好處,能夠避免例項物件的重複建立,減少建立例項的系統開銷,節省記憶體。1 乙個私有的構造方法 2 乙個私有的靜態的當前類的物件作為屬性 3 乙個公共的靜態的返回物件的方法 首先理解一下什麼是靜態類,靜態類...
單例模式的設計
單例模式可以保證在專案執行過程中,保證只有乙個物件,只分配一塊記憶體,防止不必要的記憶體開支,並且單例可以保證在專案中的全域性操作,即使在乙個.m檔案中建立了單例物件,開啟了單例物件的任務,但是在另外乙個.m檔案中可以對建立的單例物件進行操作,比如關閉單例任務等 下面簡單說下建立單例 用來儲存唯一的...