違い
1. 宣言クラスでは、メンバー変数はインスタンス変数を宣言せず、静的な内部クラスに配置されます。このアプローチは怠け者のアプローチに似ています。これらはすべて、クラス ロード メカニズムを使用して、インスタンスを初期化するスレッドが 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 中国語 Web サイトの他の関連記事を参照してください。