區別
1、在宣告類別中,成員變數不宣告實例變量,而是放置在靜態內部類別中。這種方法類似懶漢。他們都採用類別裝載機制,以確保初始化實例只有一個執行緒。不同的是,Holder單一模式是將實例的初始化放入靜態類別從而實現懶載入。
Holder模式的核心還是靜態變量,足夠方便,線程安全;透過靜態Holder類別持有真實例子,間接實現懶惰載入。
2、特點,既實現懶加載,性能好,線程安全。
實例
public class Singleton { /** * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 * 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载 */ private static class SingletonHolder{ /** * 静态初始化器,由JVM来保证线程安全 */ private static Singleton instance = new Singleton(); } /** * 私有化构造方法 */ private Singleton(){ } public static Singleton getInstance(){ return SingletonHolder.instance; } }
以上是java單例模式中Holder指的是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!