zl程序教程

您现在的位置是:首页 >  其他

当前栏目

单例

2023-03-14 10:21:58 时间

单例就是该类只能返回一个实例。

单例所具备的特点:

     1.私有化的构造函数

     2.私有的静态的全局变量

     3.公有的静态的方法

单例分为懒汉式、饿汉式和双层锁式

饿汉式:

public class Singleton1 {

      private Singleton1() {};

      private static Singleton1 single = newSingleton1();

      public static Singleton1 getInstance() {

          return single;

     }

 }

 

懒汉式:

public class Singleton2 {

      private Singleton2() {}

      private static Singleton2 single=null;

      public tatic Singleton2 getInstance() {

           if (single == null) { 

              single = new Singleton2();

          } 

         return single;

     }

 }

线程安全:

public class Singleton3 {

        private Singleton3() {}

        private static Singleton3 single ;

        public static Singleton3 getInstance() {

              if(null== single){

                     synchronized(single ){

                            if(null== single){

                                   single = new Singleton3();

                            }

                     }

              }

              returnsingle;

         }

}

 

参考:

 

通过双重判断来保证单列设计模式在多线程中的安全性,

并且它在性能方面提高了很多。