單例模式

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
        
		

網(wǎng)友評論