package pattern; /** * 懒汉式实现单例模式 * 1、创建一个静态变量 * 2、构造方法私有化 * 3、创建一个静态方法获取实例对象,如果对象为空则创建对象 * @author Administrator * */ public class Singleton { private static volatile Singleton singleton = null; private Singleton(){} //线程安全且高效 public static Singleton getInstance(){ if(singleton == null){ synchronized (Singleton.class) { if(singleton == null){ singleton = new Singleton(); } } } return singleton; } //线程安全,不高效 public static Singleton getInstance3(){ synchronized (Singleton.class) { if(singleton == null){ singleton = new Singleton(); } return singleton; } } //线程安全,不高效 public static synchronized Singleton getInstance2(){ if(singleton == null){ singleton = new Singleton(); } return singleton; } //线程不安全 public static Singleton getInstance1(){ if(singleton == null){ singleton = new Singleton(); } return singleton; } }