单例模式

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));
}
}

测试结果:

 




posted @ 2018-05-12 20:50  lee2018  阅读(100)  评论(0)    收藏  举报