一、单例模式

1、饿汉式(在类初始化时直接创建对象,不存在线程安全)

     (1) 直接实例化

public class Sigleton{

   //声明一个静态变量
   public static  final Sigleton INSTANCE =new Sigleton();

   //私有化构造方法
   private Sigleton(){}


}

    (2) 静态代码块饿汉式

public class Sigleton{

   public static final Sigleton INSTANCE;
  

//静态代码块
static{ instance=new Sigleton(); } //私有化构造方法 private Sigleton(){ } }

2、懒汉式(需要时构建)

   (1) 线程不安全

public class Sigleton{

    //私有化静态变量
   private static Sigleton instance;


   //私有化构造方法
   private Sigleton(){}

   //创建一个获取实例的静态方法
  public static Sigleton getInstance(){
      if(instance==null){
            instance=new Sigleton();
      }
      return instance;
  }

}

(2)静态内部类形式(线程安全)

public class Sigleton{


     //私有化构造器
    private Sigleton(){}

   //创建内部静态类
   private static class Inner{
       private static final Sigleton INSTANCE=new Sigleton();
   }

   //创建获取类的静态方法
   public static Sigleton getInstance(){
       return Inner.INSTANCE;
   }

}
02-11 16:40