常见设计模式-单例模式
来源:互联网 发布:2017最新淘宝口令红包 编辑:程序博客网 时间:2024/05/01 09:02
单例模式的核心思想是,通过私有化构造函数,来控制类实例的创建,从而实现单例的保证
1.懒汉式,实现简单但线程不安全
public class Singleton{ private static Singleton singleton; private Singleton(){} public static Singleton getSingleton(){ if(singleton==null){ singleton = new Singleton(); } return singleton; } }
2.懒汉式,线程安全
public class Singleton{ private static Singleton singleton; private Singleton(){} public static synchronized Singleton getSingleton(){ if(singleton==null){ singleton = new Singleton(); } return singleton; }}
这种写法,虽然线程安全,但是加锁的范围太大,导致效率低下
3.懒汉模式,线程安全,双重检验加锁
publc class Singleton{ private static Singleton singleton; private Singleton(){} if(singleton==null){ synchronized(Singleton.class); if(singleton==null){ singleton = new Singleton(); } } return singleton;}
此处的第二个 if 判断不能省略,否则当两个及以上线程都进入第一个 if 判断时,有线程被中断,则会创建不止一个实例
4.饿汉模式,线程安全,但会减慢系统初始化的时间
public class Singleton{ private static singleton = new Singleton(); private Singleton(){} public static Singleton getSingleton(){ return singleton; }}
此种方法,是通过静态变量自身的特性来保证的,静态变量的初始化是在,所属类的字节码被虚拟机加载的时候初始化的,所以保证了,在获取时的单例。但会减慢应用程序的启动速度
阅读全文
0 0
- 常见设计模式之【单例模式】
- 常见设计模式-单例模式
- JAVA设计模式之常见模式-单例模式
- 浅谈常见设计模式--单例模式 简单工厂模式
- 常见设计模式之单例模式(Singleton)
- 【设计模式】单例模式的常见应用场景
- Android常见的设计模式----单例模式
- Android常见的设计模式一:单例模式
- Java中常见的设计模式 单例模式
- 阅读笔记常见的设计模式之一:单例模式
- Java常见设计模式之单例模式
- PHP常见的设计模式之:单例模式
- 常见设计模式—单例模式/代理模式/责任链模式
- 诸多设计模式中,最为常见的三种设计模式-单例模式,代理模式,工厂模式
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 第八周java作业
- SQL学习笔记(五)
- xcode的环境变量,Build Settings参数,workspace及联编设置
- 软件工程项目--二手交易市场引言
- Python中re time os sys模块
- 常见设计模式-单例模式
- 回溯法求全排列-非递归形式-代码还没优化过
- 免费入驻商城 采购平台 购物平台 全免费资源大全总结 2017 2018年
- 文件权限基础
- Spark中文文本聚类
- 实现一个可以加载资源中隐藏的.exe可执行文件的程序
- Glide源码解析篇之框架主体结构(一)
- android7.0 之jack编译问题
- ROS常见问题1——找不到包