设计模式
23种设计模式
全村的希望~
做一个优秀的程序猿攻城狮
展开
-
java反射破解单例模式
java反射破解单例模式代码演示如何避免到底如何彻底解决呢 代码演示 // 懒汉式: 用的时候创建 public class LazyMan { private LazyMan() { synchronized (LazyMan.class) { } } private volatile static LazyMan lazyMan; ...原创 2020-05-02 02:33:55 · 465 阅读 · 0 评论 -
单例模式之DCL懒汉式解析(双重检验锁)
单例模式之DCL懒汉式解析(双重检验锁) 双重检验锁不安全的原因 在下面的代码进行到: lazyMan = new LazyMan();的时候有可能会进行指令重排. lazyMan = new LazyMan(); 这一句代码其实有3个操作 分配内存空间 执行构造方法 初始化对象 把对象指向 内存空间 A 线程的执行顺序可能是1 3 2, 并且由于不是原子性操作过程, A在操作的过程会可...原创 2020-05-01 15:15:15 · 1123 阅读 · 1 评论 -
验证普通懒汉式单例模式在多线程下不安全
验证普通懒汉式单例模式在多线程下不安全 // 懒汉式: 用的时候创建 public class LazyMan { private LazyMan() { } private static LazyMan lazyMan; // 单线程ok public static LazyMan getLazyMan() { if (lazyMan ...原创 2020-05-01 13:31:19 · 412 阅读 · 0 评论 -
JAVA几种常见的单例模式实现
JAVA几种常见的单例模式实现什么是单例模式单例模式分类饿汉式举例三种创建方式懒汉式举例 什么是单例模式 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,单例模式是一种对象创建型模式。 某个类只能有一个实例:构造器私有化 这个类必须自行创建这个实例:含有一个该类的静态变量来保存这个唯一实例 这个类必须自行向系统提供这个实例:对外提供获取该实例的方法 ...原创 2020-03-22 13:33:50 · 240 阅读 · 0 评论