设计模式 单例模式
来源:互联网 发布:任务计划 软件 编辑:程序博客网 时间:2024/04/29 08:01
直接介绍几种线程安全的且我觉得还比较不错的方式:
1、是不是号称恶汉,就是类加载就初始化了
package com.zhy.pattern.singlton;public class Singleton{ private static Singleton instance = new Singleton(); public static Singleton getInstance() { return instance ; }}2、懒汉,我喜欢这种,需要双重判断
package com.zhy.pattern.singlton;public class Singleton02{ private static Singleton02 instance; public static Singleton02 getInstance() { if (instance == null) { synchronized (Singleton02.class) { if (instance == null) { instance = new Singleton02(); } } } return instance; }}
3、使用Java的枚举,还是很推荐的,简单的跟神马一样,如果对枚举不熟悉,小google一下
public enum Singleton03{ INSTANCE;}
4、使用一个持有类,主要是为了不在初始化的时候加载
package com.zhy.pattern.singlton;public class Singleton04{ private static final class InstanceHolder { private static Singleton04 INSTANCE = new Singleton04(); } public static Singleton04 getInstance() { return InstanceHolder.INSTANCE; }}
好了,就这么多,以上4种都是比较推荐使用的,除了第一种会类加载的时候初始化,其他3中都不会,且4种都保证线程安全,特殊情况(除了多个类加载器,和你非要通过反射等手段生成多个对象)不考虑。
转自 鸿洋大神 Blog http://blog.csdn.net/lmj623565791/article/details/24468641
0 0
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- java笔记——初学面向对象08匿名内部类
- linux关于文件共享
- iOS——UI学习笔记(3)
- Volley和xUtils
- HDOJ 5384 Danganronpa
- 设计模式 单例模式
- 日报
- 自己总结第一弹
- C#中return、break、continue的用法
- 程序员必须要熟知的英文单词--更新中
- Unity粒子系统参数解析(一)
- 函数指针基础及应用(正向调用、动态库升级成框架)
- 3W咖啡商业计划书模板
- 各种编程语言的深度学习库整理