六种线程安全的单例模式
来源:互联网 发布:海大富 知乎 编辑:程序博客网 时间:2024/06/03 10:48
单例模式怕是很多程序员使用最多的设计模式了,面向对象的23种设计模式点这里。废话不多说,直接上代码:
public class Singleton { //1.懒汉型 private static Singleton instance; private Singleton (){} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
public class Singleton { //2.饿汉型 private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }
public class Singleton { //3.内部类型,可看做饿汉变种 private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){} public static final Singleton getInstance() { return SingletonHolder.INSTANCE; } }
public class Singleton { //4.双重校验锁,1.5以后可用 private volatile static Singleton singleton; private Singleton (){} public static Singleton getSingleton() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } }
public enum Singleton { //5.枚举型,Effective Java作者提倡的。可防止反序列化 INSTANCE; public void whateverMethod() { } }
public class Singleton { //6.静态型,全部静态方法和属性 private Singleton (){} public static void whateverMethod() { } }
现在有六种,那么推荐哪一种呢。其实我个人比较懒,所以推荐5和6这种字少的。6呢可以继承,但重写方法就违反了里氏替换原则,所以继承的时候要记得只采取不同的子类扩展不同的方法。
阅读全文
1 0
- 六种线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- Volatile 线程安全的单例模式
- 线程安全的单例模式
- 基于线程安全的单例模式
- 线程安全的单例模式
- 单例模式的线程安全
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式
- 线程安全的单例模式 [老生常谈]
- java线程安全的单例模式
- 线程安全的单例模式
- html5多个图片同时上传相关逻辑
- 相机标定——标定图片拍摄规范
- ACM集训日记-8月16日
- css三角形
- 【SpringMVC】Marking servlet dispatcherServlet as unavailable
- 六种线程安全的单例模式
- iOS学习之非代码获取iPhone型号及其他信息
- javascript基础(四) 个人笔记
- python字符串、列表、字典相互转换
- iOS
- Android学习之网络请求(retrofit)
- Android之窗口浅析
- POJ 1062 昂贵的聘礼(SPFA)
- Windows Practice_文件搜索器(一)递归