餓漢模式單例模式:乙個類重點內容中帶有乙個例項,該例項通過單例類提供給全域性使用。懶漢模式
序列化
建乙個單例模式的類的通用步驟:
建立乙個類
編寫乙個類例項
編寫無參構造器並用private修飾
編寫獲取例項的方法getinstance()
/**
* 餓漢模式
* 例項在類載入的時候就建立
*/
/**class singleton01
public
static singleton01 getinstance()
}
* 懶漢模式–執行緒不安全
* 下面**,在多執行緒中存在非執行緒安全
* 假設執行緒一在建立singleton02物件,而 obj = new singleton02();不是乙個原子操作
* 可以分為 jvm根據構造方法在棧區生成對應的物件,然後obj指向該物件的記憶體位址
* 所以可能存在另外乙個執行緒在obj = new singleton02();期間在new乙個物件出來
*/
class singleton02
public
static singleton02 getinstance()
return obj;
}}
/**
* 懶漢模式--執行緒安全
* 同步方法 可以達到執行緒安全,但是效率會變慢
*/
class singleton03
public
synchronized
static singleton03 getinstance()
return obj;
}}
/**/**
* 懶漢模式--執行緒安全-dcl(double check lock)
* 權衡效能和安全
* 並且使用volatile關鍵字修飾obj
* volatile作用:
* 提高被修飾物件在多個執行緒中的可見性
* 禁止指令重新排序
*/class singleton04
public
static singleton04 getinstance()
}return obj;
}}
* 反序列化的單例模式
* 加入readresolve()方法讀取「假」的例項 達到單例的作用
*/
class
singleton05
implements
serializable
public
static singleton05 getinstance()
protected object readresolve() throws objectstreamexception
}
Singleton 單例 模式
singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...
Singleton 單例 模式
今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...
單例(Singleton)模式
單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...