java 单件模式
2017-04-05 11:19
134 查看
定义:确保一个类只有一个实例,并提供一个全局访问点。
单件模式与全局变量:
全局变量必须在程序一开始就创建这个变量,如果对象十分耗费资源且这次执行过程中未用得到,则造成了浪费。单件模式可以在需要是创建对象。单件模式用于需要一个对象的情况,例如:线程池,缓存,注册表等。
示例
package singleton; /** * Created by zjy on 2017/4/5. * 双重加锁,首先检查是否创建,如果未检查,进行同步. */ public class Singleton { //当 uniqueInstance 被初始化时,多个线程可以正确处理uniqueInstance实例 private volatile static Singleton uniqueInstance; public static Singleton getInstance(){ if (uniqueInstance ==null){ //只有第一次彻底执行这段代码 synchronized (Singleton.class){ if (uniqueInstance ==null){ uniqueInstance = new Singleton(); } } } return uniqueInstance; } }
采用双重加锁模式,Java5 之后才能用volatile关键字
也可以延迟创建实例且只同步 getinstance方法,不过性能不佳
也可以急切实例化,可是就直接创建实例。
如果使用多个类加载器,可能会导致多个实例单例模式失效。
相关文章推荐
- Java设计模式——单件模式
- 单件模式——JAVA的两种实现
- 浅析设计模式之单件模式 java 单例模式
- Java设计模式——单件模式
- java学习之单件模式
- Java设计模式——线程安全的单件模式
- java单件模式
- JAVA基础(四)设计模式总结及单件模式
- java 实现支持多线程的单件模式
- 多线程安全的Singleton单件模式在C++,java与C#下的实现
- JAVA设计模式之单件模式
- 多线程单件模式-Java
- Java学习笔记-单件模式
- 单件模式(java)
- java单件模式
- java学习之单件模式
- java单件模式
- java设计模式——单件模式
- java设计模式之单件模式Singleton
- java 单例模式 单件模式 Singleton