
Java单例模式及其破坏和优化
6、如果创建对象不走LazyMan.getInstance(),都走反射创建,那么就会绕过第三重检测,即第三重检测失效。3、DCL懒汉式可能存在指令重排问题,需要加上volatile 保证原子性。9、使用枚举类,枚举类自带单例并且反射不能破坏枚举,写在源码里的。下面是实验代码,我尽量写的清楚些,大家可以去看视频理解。2、多线程下单例失效,需双重检测锁模式 即DCL懒汉式。1、单例模式有饿汉式和懒汉式 饿汉式占用内存较大。8、如果标志位被修改即标志位失效则问题依旧存在。5、针对上述问题可以添加第三重检测。







