1. 程式人生 > >單例模式(靜態內部類實現)

單例模式(靜態內部類實現)

靜態內部類實現方式(也是一種懶載入方式) 要點:

外部類沒有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
    }
}