推荐使用的两种单例模式
来源:互联网 发布:js怎么设置display 编辑:程序博客网 时间:2024/06/04 18:25
两种经典的线程安全的单例模式(均采用懒汉式),一种是同步加锁的模式;一种是采用私有静态类的方式。
一、只有当instance为null时,需要获取同步锁,创建一次实例。当实例被创建,则无需试图加锁。
public class Singleton { private static Singleton instance=null; private Singleton(){ } public static Singleton getInstance(){ if(instance==null){ synchronized(Singleton.class){ if(instance==null){ instance=new Singleton(); } } } return instance; }}
二、定义一个私有的内部类,唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,在第一次用这个嵌套类时,会创建一个实例。
而类型为SingletonHolder的类,只有在Singleton.getInstance()中调用,由于私有的属性,他人无法使用SingleHolder,不调用Singleton.getInstance()就不会创建实例。
public class Singleton { private Singleton(){ } private static class SingletonHolder{ private final static Singleton instance = new Singleton(); } public static Singleton getInstance(){ return SingletonHolder.instance; }}
阅读全文
0 0
- 推荐使用的两种单例模式
- Android设计模式--推荐使用的两种单例模式
- 推荐使用的几种单例模式
- 内核模式驱动不推荐使用C++的缘由
- struts2的模型驱动(推荐使用)、属性驱动模式
- makefile 推荐使用静态模式
- 推荐的单例模式
- 推荐使用的软件
- 推荐的一种多层设计模式
- 推荐的一种多层设计模式
- 【blog推荐】好的设计模式BLOG
- 音乐八宝盒的推荐引擎模式
- 推荐一个讲解设计模式的视频
- 推荐两本设计模式的好书
- 单例模式的推荐实现(java)
- php设计模式的专栏推荐
- oryx 推荐系统的使用
- 推荐使用的Android特效
- 递归求桔子数
- Spring 注解 <context:component-scan> 子标签 <context:exclude-filter > 和 <context:include-filter>区别
- 如何用keras cnn 做kaggle猫狗大战图片识别
- bzoj 3879 SvT
- 【并发编程】死锁
- 推荐使用的两种单例模式
- Android探索之旅(第十八篇)Android中能不断提高你代码质量的工具
- 面向对象纲要
- c/c++中运行外部程序
- linux netstat网络情况
- Android推送遇到的问题--app关闭后,点击通知后点击通知后app未初始化的问题
- AF_INET和PF_INET的细微不同
- JAVA基本的正则表达式
- 算法提高 排队打水问题