單例模式(靜態內部類實現)
阿新 • • 發佈:2018-12-21
靜態內部類實現方式(也是一種懶載入方式) 要點:
外部類沒有static屬性,則不會像餓漢式那樣立即載入物件只有真正呼叫了getInstance()才會載入靜態內部類,載入類時是執行緒安全的。
sc是static final型別,保證了記憶體中只有一個例項存在,而且只能被賦予一次從而保證了執行緒安全性。
兼備了併發高效呼叫和延遲載入的優勢。
public class StaticClass {
private static class StaticClassSc{
private static final StaticClass sc = new StaticClass();
}
public static StaticClass getInstance() {
return StaticClassSc.sc;
}
private StaticClass() {};
}
public class Client {
public static void main(String[] args) {
StaticClass sc = StaticClass.getInstance();
StaticClass sc1 = StaticClass.getInstance();
System.out.println(sc==sc1);//結果為true
}
}