单例模式
2020-06-03 20:11:27 44 举报
AI智能生成
单例模式
作者其他创作
大纲/内容
1.饿汉式
依赖JVM执行机制,保证单例只被创建一次
2.枚举类型
枚举类型=不可被继承的类(final)
每个枚举类元素=类静态常量
枚举元素都通过静态代码块来初始化
优点
缺点
构造方法 访问权限 默认=私有(private)
大部分都是final
3.懒汉式
1.类加载时,先不自动加载单例,即单例的引用先赋值为null
优点:按需加载单例,节约资源
缺点:容易造成线程不安全。(多线程下创建多个单例)
2.需要时才手动创建单例: public static Singleton newInstance() {}
4.同步锁(懒汉式的改进)
synchronized同步锁加在创建单例的方法上
优点:线程安全
缺点:造成过多的同步开销。每次访问都要进行线程同步,加锁,耗时耗能
5.双重校验锁
校验锁1:若单例已创建,则直接返回已创建的单例,无需再执行加锁操作
优点:线程安全,节约资源(不需过多的同步开销)
缺点:实现复杂,多重判断,易出错
校验锁2:防止多次创建单例问题
6.静态内部类
按需加载
线程安全
0 条评论
下一页