/**
* 饱汉模式
*/
public class SingletonFull {
//首先,堵死SingletonFull()
private SingletonFull(){}
//和饿汉模式相比,这边不需要实例化出来,注意这里的valatile,
//valatile
private static volatile SingletonFull instance=null;
//不建议将synchronized加载方法上,这样会大量损耗性能
public static SingletonFull getInstance(){
if(instance==null){
//对SingletonFull进行加锁
synchronized (SingletonFull.class){
//必须判断instance是否为空,为了线程安全问题
if(instance==null){
instance=new SingletonFull();
}
}
}
//返回创建好的instance实例
return instance;
}
}
public class TestSingletonFull {
public static void main(String[] args) {
System.out.println("是否是同一个实例=="+(SingletonFull.getInstance()==SingletonFull.getInstance()));
}
}