• 单例模式


    1.懒汉、线程不安全

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

    2.懒汉、线程安全

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

    3.饿汉

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

    4.双重校验

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

    5.静态内部类

    public class SingletonInner {
        private static class Holder {
            private static SingletonInner singleton = new SingletonInner();
        }
    
        private SingletonInner(){}
    
        public static SingletonInner getSingleton(){
            return Holder.singleton;
        }
    }
    

      

  • 相关阅读:
    省选测试29
    省选测试28
    省选测试27
    省选测试26
    省选测试25
    最小费用最大流Dinic
    省选测试24
    省选测试23
    省选测试22
    省选测试21
  • 原文地址:https://www.cnblogs.com/jhin-wxy/p/9024059.html
Copyright © 2020-2023  润新知