/**
* 单例创建的方式
* 1、懒汉式
* 1)构造器私有化
* 2)声明私有的静态属性
* 3)对外提供访问属性的静态方法,确保该对象存在
*
* @author Administrator
*
*/
public class MyJvm2 {
private static MyJvm2 instance;
private MyJvm2(){
}
public static MyJvm2 getInstance(){
if (null==instance) {//提高效率
synchronized (MyJvm2.class) {
if (null==instance) {//安全
instance=new MyJvm2();
}
}
}
return instance;
}
}
/**
* 饿汉式
* 1)构造器私有化
* 2)声明私有的静态属性,同事创建该对象
* 3)对外提供访问属性的静态方法
*/
class MyJvm1 {
private static MyJvm1 instance=new MyJvm1();
private MyJvm1(){
}
public static MyJvm1 getInstance(){
return instance;
}
}
/**
* 类在使用的时候加载,延缓了加载时间
* @author Administrator
*
*/
class MyJvm3 {
private static class JVMholder{
private static MyJvm3 instance=new MyJvm3();
}
private MyJvm3(){
}
public static MyJvm3 getInstance(){
return JVMholder.instance;
}
}
[设计模式]——单例模式_doubleChecking
最新推荐文章于 2019-01-25 13:31:18 发布