單例模式

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
        
		

網(wǎng)友評論