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

    单例模式的五种实现写法:懒汉、饿汉、双重检验锁、静态内部类、枚举。线程安全的实现方式

      懒汉式:        

        public class Singleton {

            private static Singleton instatnce;

            private Singleton(){}

            public static synchronized Singleton getInstance(){
              if(instatnce == null)
                instatnce=new Singleton();
              return instatnce;
             }

        }

      双重检验锁: 

        public class Singleton {  

            private static Singleton instatnce;


            private Singleton(){}

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

        }

      饿汉式:

        

        public class Singleton {

          private static Singleton instatnce=new Singleton();

          private Singleton(){}

          public static Singleton getInstance(){
            return instatnce;
          }

        }

      静态内部类:

        

        public class Singleton {

          private static class SingletonHolder{
            private static final Singleton INSTANCE = new Singleton();
          }

          private Singleton(){}

          public static final Singleton getInstance(){
            return SingletonHolder.INSTANCE;
          }

        }

      枚举:

        

        public enum EasySingleton {

          INSTANCE;

        }

  • 相关阅读:
    POJ 1681 Painter's Problem(高斯消元法)
    HDU 3530 Subsequence(单调队列)
    HDU 4302 Holedox Eating(优先队列或者线段树)
    POJ 2947 Widget Factory(高斯消元法,解模线性方程组)
    HDU 3635 Dragon Balls(并查集)
    HDU 4301 Divide Chocolate(找规律,DP)
    POJ 1753 Flip Game(高斯消元)
    POJ 3185 The Water Bowls(高斯消元)
    克琳:http://liyu.eu5.org
    WinDbg使用
  • 原文地址:https://www.cnblogs.com/rookie404/p/5792414.html
Copyright © 2011-2022 走看看