单例模式

Posted liwei2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。

public class Demo1 {
//volatile保证内存可见性
private volatile static Demo1 instance;

public static Demo1 getInstance(){
if(instance==null){
synchronized (Demo1.class){
if(instance==null){
instance=new Demo1();
}
}
}
return instance;
}

/**
* 构造方法私有化,不被外部创建
*/
private Demo1(){
System.out.println("Demo1 created");
}

}


测试代码:
public class Demo1Test {


@Test
public void test1(){
Demo1 instance1 = Demo1.getInstance();
Demo1 instance2 = Demo1.getInstance();
Demo1 instance3 = Demo1.getInstance();
Assert.assertTrue(instance1.equals(instance2));
Assert.assertTrue(instance1.equals(instance3));
}
}

测试结果:

技术分享图片

 












































以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章

单例模式(单例设计模式)详解

Java模式设计之单例模式(二)

单例模式(饿汉式单例模式与懒汉式单例模式)

单例模式

单例模式

设计模式之单例模式