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

    饿汉模式

    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;  
        }  
    }  
  • 相关阅读:
    eclipse如何运行maven项目
    node.js的ejs模版引擎
    java中?和A、B、T、E、K、V的区别
    public static <T> Map<String, T> json2map
    Session深入理解
    maven指定构建的编码格式
    Effective java-泛型思维导图
    Effective java-枚举和注解思维导图
    java编程思想-泛型思维导图
    java编程思想-枚举类型思维导图
  • 原文地址:https://www.cnblogs.com/slowcity/p/7505596.html
Copyright © 2011-2022 走看看