標籤:.class strong 構造 size font 產生 iba 函數 nal
一:懶漢式
1: 安全執行緒的雙重鎖檢查機制
public class Singleton{
private Singleton() {} // 私人建構函式,保證不被外界執行個體化(不考慮反射)
private static Singlecton single = null;
public static Singlecton getInstance()
{ if (singleton == null)
{
synchronized (Singleton.class)
{ if (singleton == null)
singleton = new Singleton();
}
}
return singleton
}
}
2:靜態內部類:安全執行緒,不用加鎖
public class Singleton {
private static class LazyHolder{
private static final Singleton INSTANCE = new Singleton ();
}
private Singlecton() {}
public static final Singlecton getInstance()
{
return LazyHolder.INSTSNCE;
}
}
這裡總結一下靜態內部類:
A:靜態內部類,只能訪問外部類的靜態成員。
B:靜態內部類可以執行個體化
C:靜態內部類隨著類載入而產生(在類載入的時候,靜態成員就產生了)
二:餓漢式:
public class Singleton{
private Singlecton() {}
pribate static final Singlecton single = new Singleton();
public static Singlecton getInstance()
{
return single;
}
}
設計模式—單例模式(java)