單例模式
Java內(nèi)存模型的抽象示意圖:
所有單例模式都有一個共性,那就是這個類沒有自己的狀態(tài)。也就是說無論這個類有多少個實例,都是一樣的;然后除此者外更重要的是,這個類如果有兩個或兩個以上的實例的話程序會產(chǎn)生錯誤。
非線程安全的模式
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