zoukankan      html  css  js  c++  java
  • 单例模式

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

      

  • 相关阅读:
    Log4Net_LayOut
    各种数据库的批量插入操作_Oracle
    关于各种数据库 Insert时同时取到Id的操作
    一个小型的DBHelper的诞生(1)
    设计模式:重读(抽象工厂模型)
    设计模式:重读(单例)
    设计模式:重读(导读)
    17 1
    5
    oj 2.2
  • 原文地址:https://www.cnblogs.com/jhin-wxy/p/9024059.html
Copyright © 2011-2022 走看看