當我們想要乙個類只產生乙個例項化物件時,就需要用到單例模式,單例設計模式分為兩種:餓漢式和懶漢式。
1 餓漢式單例
當用到這個類時,不管是否需要乙個物件都會建立乙個例項化物件
public class singleton
public static singleton getinstance()
public static void main(string args)
}
2 懶漢式單例
當需要例項化物件時,才會為你建立乙個物件需要注意的是,懶漢式存在多執行緒安全問題
public class singleton
public static singleton getinstance()
return instance;
}public void println();
public static void main(string args)
}
單例(懶漢式單例 餓漢式單例)
public class singleton private static singleton instance new singleton public static singleton getinstance public class singleton public static synchr...
餓漢式單例和懶漢式單例比較
餓漢式單例 public class singleton public static singleton getinsance 懶漢式單例 public class singleton 必須加同步關鍵字synchronized,為了避免多執行緒同時訪問時,建立多個例項 public synchron...
懶漢式單例和餓漢式單例優缺點
1 時間和空間 比較上面兩種寫法 懶漢式是典型的時間換空間,也就是每次獲取例項都會進行判斷,看是否需要建立例項,浪費判斷的時間。當然,如果一直沒有人使用的話,那就不會建立例項,則節約記憶體空間。餓漢式是典型的空間換時間,當類裝載的時候就會建立類例項,不管你用不用,先建立出來,然後每次呼叫的時候,就不...