单例模式_听韩顺平课笔记
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工厂

浙公网安备 33010602011771号