1. 程式人生 > >劍指offer ---實現Singleton模式

劍指offer ---實現Singleton模式

實現單例

  1. 懶漢模式 當要第一次呼叫才例項化 避免記憶體浪費 需要加鎖synchronized 才能執行緒安全
    //雙重檢查加鎖
    public Singleton getInstance() {
        //先檢查例項是否為空 不為空進入程式碼塊
        if (instance == null) {
             //同步塊 執行緒安全地建立例項
            synchronized (Singleton.class) {
                 //再次檢查例項是否為空 為空才真正的建立例項
                if
(instance == null) { instance = new Singleton(); } } } return instance; } //給方法加上同步 public synchronized Singleton getInstance1() { if (instance == null) { instance = new Singleton(); } return
instance; }
  1. 餓漢模式 類載入時候就例項化了 浪費記憶體
public Singleton2 getInstance(){
        return instance;
    }