• 管理
  • 单例模式

    饿汉模式

    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;  
        }  
    }  

     

    posted @ 2017-09-11 16:32  斑马森林  阅读(137)  评论(0)    收藏  举报