HeadFirst design pattern笔记-单例模式
来源:互联网 发布:淘宝猫粮成分分析 编辑:程序博客网 时间:2024/06/08 11:05
单例模式:确保一个类只有一个实例,并提供一个全局访问点。单例模式的构造方法是私有的,所以不能从外部创建这个类,这样很自然想到定义静态方法返回这个类的实例的方式。
实现的方式:
1.线程同步方式:
public class Singleton {public static synchronized Singleton getInstance() {if (null == uniquesInstance) {uniquesInstance = new Singleton();}return uniquesInstance;}private Singleton() {}private static Singleton uniquesInstance;}
缺点:实际上只有第一次创建此对象时才需要进行线程同步,对象创建后同步就没有了意义。
2.加载时创建
public class Singleton {public static Singleton getInstance() {return uniquesInstance;}private Singleton() {}private static Singleton uniquesInstance = new Singleton();}JVM在加载这个类时马上创建一个唯一的实例,JVM保证在任何线程访问uniqueInstance静态变量之前一定先创建此实例。
3.双重检查加锁的方式
public class Singleton {public static Singleton getInstance() {if (null == uniquesInstance) {synchronized (this) {if (null == uniquesInstance) {uniquesInstance = new Singleton();}}}return uniquesInstance;}private Singleton() {}private volatile static Singleton uniquesInstance;}
如果实例没有创建才进行同步,而不是第一种方式的每次都同步,此方式只需要同步一次。双重检查加锁适用于JAVA5及以上的版本
- HeadFirst design pattern笔记-单例模式
- HeadFirst design pattern笔记-观察者模式
- HeadFirst design pattern笔记-装饰者模式
- Design pattern-单例模式
- Design Pattern - Singleton Pattern 单例模式
- design pattern"Headfirst Design Pattern"
- 单例模式【Design Pattern Singleton 】
- 单例模式(Design Pattern:Singleton)
- Design Pattern 之 单例模式
- Design Pattern:单例(SingleTon)模式
- 设计模式(design pattern)-单例模式(singleton pattern)
- Design Pattern学习笔记之单例(Singleton Pattern)
- HeadFirst 设计模式学习笔记5--单例模式
- HeadFirst 设计模式学习笔记5--单例模式
- HeadFirst 设计模式学习笔记5--单例模式
- <HeadFirst设计模式>笔记——单例模式
- Headfirst-7 单例模式
- 单例模式-HeadFirst学习
- 数据结构_快速排序
- 2012年科技行业那些事:IT巨头加紧冲刺步伐
- 一个仿clear的demo
- phpcms头部代码详细分析
- 深度解析Java内存的原型
- HeadFirst design pattern笔记-单例模式
- key event (keydown keyup...)
- js兼容性
- Android最佳实践之:StrictMode介绍
- 怎么处理警告:编码 GBK 的不可映射字符和ant的一些错误
- 励志故事:从辍学到月薪一万
- 【面试】4.单链表的反向
- json格式
- C++进行质数判断