一、单例模式
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; } }