1.懶漢模式-非執行緒安全
/**
* 懶漢-非執行緒安全
* *@author john
* */
public
class
singleton1
//對外訪問例項的靜態方法
public
static singleton1 getinstance()
return instance;
}}
2.懶漢模式-執行緒安全
/**
* 懶漢-執行緒安全
* *@author john
* */
public
class
singleton2
//對外訪問例項的靜態方法,關鍵字synchronized表示該方法是執行緒同步的
public
static
synchronized singleton2 getinstance()
return instance;
}}
3.餓漢模式-宣告時初始化-執行緒安全
/**
* 餓漢-執行緒安全
* *@author john
* */
public
class
singleton3
// 對外訪問例項的靜態方法
public
static singleton3 getinstance()
}
4.餓漢模式-static塊中初始化-執行緒安全
/**
* 餓漢-執行緒安全-在static塊初始化
* *@author john
* */
public
class
singleton4
// 不允許自己建立例項化
private
singleton4() {}
// 對外訪問例項的靜態方法
public
static singleton4 getinstance()
}
5.靜態內部類-執行緒安全
/**
* 靜態內部類-執行緒安全
* *@author john
* */
public
class
singleton5
// 不允許自己建立例項化
private
singleton5() {}
// 對外訪問例項的靜態方法,通過靜態內部類訪問
public
static
final singleton5 getinstance()
}
6.列舉-執行緒安全
public
enum singleton6
}
7.雙重校驗鎖
public
class singleton7
public
static singleton7 getsingleton() }}
return singleton;
}}
java單例模式的7種寫法
很不錯。懶漢 2種,執行緒安全和執行緒不安全 餓漢 classloader,和static塊變種 雙重校驗鎖,列舉和靜態內部類。幾種之間的區別就是為了避免不同環境下的缺陷。下面就列舉型別的單例模式說明 package com.zoer.src public enum singletonexample...
7種方式實現單例模式
單例模式,即是整個類有且只有乙個類例項,通過這個唯一的例項為全域性提供服務。單例類的構造方法為私有的,通過乙個暴露給外界的獲取例項方法來呼叫私有構造方法,保證例項的唯一性。因為餓漢式單例在類載入時就初始化了唯一的例項 且只會初始化一次,所以,該例項是唯一的,即 執行緒安全的 因此,如果我們想要為例項...
單例模式的7種實現方式
多個執行緒要操作同乙個物件,保證物件的唯一性,例項化過程只例項化一次 解決的思路 在載入類時就例項化乙個物件 public class singleton1 public static singleton1 getintance 特點用這個物件的時候才去例項化 public class hoonsi...