ddu-单例模式

  • 饿汉式

      public class Singleton {
      private static final Singleton singleton=new Singleton();
     public Singleton getInstance(){
      return singleton;
       }
     }
    
  • 懒汉式

       class Singleton2{
       private  static Singleton2 mInstance ;
    
       public static Singleton2 getInstance(){
       if (mInstance==null){
         return new Singleton2();
           }
         return mInstance;
          }
       }
    
  • 方法加锁

      class Singleton3{
         private static Singleton3 mInstance;
    
         public static synchronized Singleton3 getInstance(){
         if (mInstance==null){
         mInstance= new Singleton3();
     }
     return mInstance;
       }
     }
    
  • Double Check Lock(DCL)

     class Singleton4{
     private static Singleton4 mInstance;
    
     public static  Singleton4 getInstance(){
     if (mInstance==null){
         synchronized(Singleton4.class){
             mInstance= new Singleton4();
         }
     }
     return mInstance;
       }
     }
    
  • 静态内部类单例模式

       class Singleton5{
    
         private static Singleton5 getInstance(){
         return Singleton5Holder.singleton5;
         }
     }
     class Singleton5Holder{
     public static Singleton5 singleton5=new Singleton5();
     }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容