设计模式一:饱汉式单例(双重锁)
一.简介
单例的目的保证该对象只能存在一个,只有应用场景相当多,列如jedisUtils..
二.代码
测试代码如下:
/** * @ClassName: SingeTest * @Description: 饱汉式单例 * @author: ck * @date: 2019年2月23日 下午3:37:47 */ public class SingeTest { public static SingeTest singeTest=null;
// 将构造方法私有化,使其只能通过getSingeTestInstance方法实例化 private SingeTest() {} public static SingeTest getSingeTestInstance() { //判断是否初始化过,初始化过则直接返回对象 if(singeTest==null) { //加锁 synchronized (SingeTest.class) { //双重锁,判断是否为空 if(singeTest==null) { singeTest = new SingeTest(); } } } return singeTest; } }
public class MainSinge { public static void main(String[] args) { SingeTest singeTest1 = SingeTest.getSingeTestInstance(); SingeTest singeTest2 = SingeTest.getSingeTestInstance(); System.out.println(singeTest1==singeTest2); } }
测试结果: