單例模式
Java內(nèi)存模型的抽象示意圖:
所有單例模式都有一個(gè)共性,那就是這個(gè)類沒有自己的狀態(tài)。也就是說無論這個(gè)類有多少個(gè)實(shí)例,都是一樣的;然后除此者外更重要的是,這個(gè)類如果有兩個(gè)或兩個(gè)以上的實(shí)例的話程序會(huì)產(chǎn)生錯(cuò)誤。
非線程安全的模式
public class Singleton { private static Singleton instance; private Singleton(){ } public static Singleton getInstance() { if (instance == null) //1:A線程執(zhí)行 instance = new Singleton(); //2:B線程執(zhí)行 return instance; } }
普通加鎖
public class SafeLazyInitialization { private static Singleton instance; public synchronized s