单例模式
文章平均质量分 51
booynal
这个作者很懒,什么都没留下…
展开
-
Java指令重排测试类
场景二:单例模式的懒汉模式,DCL+volatile能保证不发生意外,但这里故意不加volatile,验证是否发生指令重排导致意外情况。场景一:两个线程分别对不同变量来回赋值,验证是否发生指令重排。总结了两个指令重排的场景,并编写代码实现了。原创 2023-02-19 21:53:47 · 217 阅读 · 1 评论 -
4种单例模式的写法,如何破解?如何防守?
从以上结果可以看出,4个单例模式中的前3个都被成功的创建出了两个对象,也就成功打破了单例模式的“单个对象”的保证,但第4个单例模式却失败了,异常错误提示:“无法反射式创建枚举对象”既然类加载器可以随意定义,那就将单例类将系统默认的那个类加载器做绑定,即在构造函数中判断类加载器是否与系统默认的类加载器相同,如果不同则抛出异常。《深入理解Java虚拟机》中说:对于任意一个类,都需要由加载的类加载器与这个类本身一同确定其在JVM中的唯一性,每个类加载器,都拥有一个独立的类名称空间。原创 2022-06-26 18:14:51 · 174 阅读 · 0 评论