javaシンプルなモデル

2136 ワード

まず、この方法はマルチスレッドを防止することであり、同期方法が頻繁に起動されるとこの方法には適しない。
public class Singleton { 

    //           
    private Singleton() {}  
 
    /*
     *          
 
  
    *    ,   final   ,  volatile         instance      ,
     *   instance                ,       
    */
     private static volatile Singleton instance;  

    //           ,       
     public static Singleton getIstance() { 
        //           (        ,instance   null ,      ,      )
        if (instance == null) {
            //     (       ,       ,                 ,       )
            synchronized (Singleton.class) {
                //    ,   instance  
                if (instance == null) {
                    instance = new Singleton();   
                }   
            }   
        }   
        return instance;   
    }   
}