使用持有者類 Bill Pugh Singleton 實現的執行緒安全延遲初始化

public class Singleton {
    private static class InstanceHolder {
        static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return InstanceHolder.INSTANCE;
    }

    private Singleton() {}
}

這在第一次呼叫 Singleton.getInstance() 時初始化 INSTANCE 變數,利用語言的執行緒安全保證進行靜態初始化,而無需額外的同步。

這種實現也稱為 Bill Pugh 單例模式。 [維基]