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;
}
}
备注:博主微信公众号,不定期更新文章,欢迎扫码关注。