如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
HYPERLINK"http://blog.csdn.net/it_man/article/details/5787567"Java单例模式探讨分类:架构和设计模式2010-08-0411:31转自:HYPERLINK"http://blog.csdn.net/it_man/article/details/5787567"CSDN博客--HYPERLINK"http://blog.csdn.net/it_man/article/details/5787567"it_man的专栏单例模式实现方式:1.预先加载法(饿汉式)Java代码HYPERLINK"http://yiminghe.javaeye.com/blog/404334"classS1{privateS1(){System.out.println("ok1");}privatestaticS1instance=newS1();publicstaticS1getInstance(){returninstance;}}[java]HYPERLINK"http://blog.csdn.net/it_man/article/details/5787567#"viewplainHYPERLINK"http://blog.csdn.net/it_man/article/details/5787567#"copyclassS1{privateS1(){System.out.println("ok1");}privatestaticS1instance=newS1();publicstaticS1getInstance(){returninstance;}}优点:1.线程安全的2.在类加载的同时已经创建好一个静态对象,调用时反应速度快。缺点:资源利用效率不高,可能getInstance永远不会执行到,但是执行了该类的其他静态方法或者加载了该类(反射)(class.forName),那么这个实例仍然初始化了2.initializationondemand,延迟加载法(懒汉式,考虑多线程)Java代码HYPERLINK"http://yiminghe.javaeye.com/blog/404334"classS2{privateS2(){System.out.println("ok2");}privatestaticS2instance=null;publicstaticsynchronizedS2getInstance(){if(instance==null)instance=newS2();returninstance;}}[java]HYPERLINK"http://blog.csdn.net/it_man/article/details/5787567#"viewplainHYPERLINK"http://blog.csdn.net/it_man/article/details/5787567#"copyclassS2{privateS2(){System.out.println("ok2");}privatestaticS2instance=null;publicstaticsynchronizedS2getInstance(){if(instance==null)instance=newS2();returninstance;}}优点:资源利用率高,不执行getInstance就不会被实例,可以执行该类其他静态方法。缺点:第一次加载时发应不快,多线程使用不必要的同步开销大3.initializationondemanddoublecheck双重检测(考虑多线程)Java代码HYPERLINK"http://yiminghe.javaeye.com/blog/404334"classS3{privateS3(){System.out.println("ok3");}privatestaticS3instance=null;publicstaticS3getInstance(){if(instance==null){synchronized(S3.class){if(instance==null)instance=newS3();}}returninstance;}}[java]HYPERLINK"http://blog.csdn.net/it_man/article/details/5787567#"viewplainHYPERLINK