
046设计模式
安果移不动
精通Android,Swift,Flutter,Python,Php,按键精灵,易语言。曾为华为录制精品课程,拥有资质:按键精灵顶级证书;
产品秀:https://www.anguomob.com
B站:https://space.bilibili.com/482453235
展开
-
设计模式。单例,枚举(完美中的完美)
package com.yzdzy.design.singleton;/** * 不仅可以解决线程同步,还可以防止反序列化 */public enum Mgr08 { INSTANCE; public void m() { System.out.println("m"); } public static void main(String[] args) { for (int i = 0; i < 10; i++) {.原创 2021-12-06 16:56:13 · 130 阅读 · 0 评论 -
设计模式。单例、静态内部类方式(公认最完美的)
上文中我们讲到锁加双重null判断但实际上。那种写法也太复杂,只不过是相对于饿汉懒汉优化的最好版本而大家都觉得最完美的一种方式是静态内部类方式package com.yzdzy.design.singleton;/** * 静态内部类方式(最完美的) * JVM保证单例 * 加载外部类时不会加载内部类,这样可以实现懒加载 * 比双重判断单例还要更好一点 */public class Mgr07 { private Mgr07() { } //定义静原创 2021-12-06 16:53:02 · 253 阅读 · 0 评论 -
设计模式。双重检查单例(优化到极致完美),解决单例懒汉式的线程不安全
上文讲到单纯的加锁就可以package com.yzdzy.design.singleton;/** * 懒汉式 * lazy loading * 优点:按需初始化,什么时候用什么时候才初始化 * 缺点:线程不安全 */public class Mgr04 { private static Mgr04 mInstance; private Mgr04() { } public static synchronized Mgr04 getInsta原创 2021-12-06 16:40:19 · 2705 阅读 · 0 评论 -
设计模式。单例懒汉式(懒得让人觉得不够安全)
package com.yzdzy.design.singleton;/** * 懒汉式 * lazy loading * 优点:按需初始化,什么时候用什么时候才初始化 * 缺点:线程不安全 */public class Mgr03 { private static Mgr03 mInstance; private Mgr03() { } public static Mgr03 getInstance() { if (mInstanc.原创 2021-12-06 15:47:55 · 226 阅读 · 0 评论 -
设计模式。单例饿汉式(最常用的单例模式)
单例的好处 就是就引用一个对象。可以防止内存多余的加载也是面试题必须问到的一个问饿汉式简单实用,推荐使用缺点也很明显:不管用没用到。在类装载的时候就完成了初始化。package com.yzdzy.design.singleton;/** * 饿汉式。直接创建出来 */public class Mgr01 { private static final Mgr01 mInstance = new Mgr01(); private Mgr01() { }.原创 2021-12-06 15:26:22 · 336 阅读 · 0 评论