单例模式_听韩顺平课笔记
作者:互联网
1.单例介绍
单例设计模式,就是采取一定的方法保证整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。
如:Hibernate中的SessionFactory
单例模式有八种实现方式:
1.饿汉式(静态常量)
2.饿汉式(静态代码块)
3.懒汉式(线程不安全)
4.懒汉式(线程安全)
5.懒汉式(同步代码块)
6.DoubleCheck
7.静态内部类
8.枚举方式
2.静态常量饿汉式
实现步骤:
- 构造器私有化(防止new)
- 类的内部创建对象
- 向外暴露一个静态的公共方法。getInstance
- 代码实现
静态常量饿汉式的优缺点:
3.静态代码块饿汉式
除了将实例化过程放在静态代码块中外,实现与静态常量饿汉式一致,也有一样的优缺点
4.线程不安全懒汉式(实际开发过程中不要使用)
实现思路:提供一个静态的公有方法,当使用到该方法时,才去创建instance
优缺点:
优点:实现了 Lazy Loading的效果,但只能在单线程下使用
缺点:多线程下不安全
5.线程安全,同步方法懒汉式(实际开发过程中不推荐使用,效率低)
优缺点:
优点:解决线程不安全问题
缺点:效率太低
6.同步代码块懒汉式(实际开发过程中不要使用)
将同步方法,改为同步产生实例化的代码块
优缺点:
7.DoubleCheck(推荐使用)
使用volatile关键字
优缺点:
8.静态内部类(推荐使用)
静态内部类的两个特点:
- 当外部类被装载时,静态内部类并不会被装载(懒加载)
- 静态内部类被装载时,只会装载一次,而且装载时,线城是安全的(JVM保证)
9.枚举方式(推荐使用)
10.单例模式JDK源码分析
JDK中java.lang.Runtime就是经典的单例模式(饿汉式)
单例模式注意事项和使用细节:
11.单例模式总结
- 什么是单例模式
- 单例模式的八种实现方式
- 单例模式注意事项和使用细节
- 单例模式适用于:需要频繁进行创建和销毁的对象,重量级对象,工具类对象,数据源,session工厂
标签:单例,静态,优缺点,笔记,模式,饿汉,懒汉,顺平 来源: https://www.cnblogs.com/CH0701/p/15366019.html