• 单例模式


    饿汉模式

    public class Singleton {  
        private static Singleton instance = new Singleton();  
        private Singleton (){}  
        public static Singleton getInstance() {  
          return instance;  
        }  
    }  

    另类饿汉单例模式(静态代码块)

    public class Singleton {  
        private Singleton instance = null;  
        static {  
          instance = new Singleton();  
        }  
        private Singleton (){}  
        public static Singleton getInstance() {  
          return this.instance;  
        }  
    }   

    懒汉模式 (懒汉,线程安全)

    public class Singleton{
      private static Singleton instance;
      private Singleton(){}
      public static synchronized Singleton getInstance(){
        if(instance==null){
          instance=new Singleton();
        }
        return instance;
      }
    
    }

    懒汉模式 (懒汉,线程安全)--双检锁模式

    public class Singleton {  
        private volatile static Singleton singleton;  
        private Singleton (){}  
        public static Singleton getSingleton() {  
          if (singleton == null) {  
              synchronized (Singleton.class) {  
                if (singleton == null) {  
                    singleton = new Singleton();  
                }  
              }  
          }  
          return singleton;  
        }  
    }  

     静态内部类 

    public class Singleton {  
        private static class SingletonHolder {  
          private static final Singleton INSTANCE = new Singleton();  
        }  
        private Singleton (){}  
        public static final Singleton getInstance() {  
          return SingletonHolder.INSTANCE;  
        }  
    }  
  • 相关阅读:
    lambda 和 iterable
    使用Jenkins部署Python项目
    python下selenium自动化测试自我实践
    【其它】数学学科编码
    【其它】音阶中的数学
    【数理统计基础】 06
    【数理统计基础】 05
    【数理统计基础】 04
    【数理统计基础】 03
    【数理统计基础】 02
  • 原文地址:https://www.cnblogs.com/slowcity/p/7505596.html
Copyright © 2020-2023  润新知