1. 什么是单例模式?
单例模式是为确保一个类只有一个实例, 并为整个系统提供一个全局访问点的一种模式方法
单例的特点:
在任何情况下, 单例类永远只有一个实例存在 单例需要有能力为整个系统提供这一唯一实例
饿汉和懒汉单例
1. 饿汉式单例是指在方法调用前, 实例就已经创建好了
2. 懒汉式单例是指在方法调用获取实例时才创建实例, 因为相对饿汉式显得不急迫, 所以被叫做懒汉模式
3. 使用静态内置类实现单例模式
DCL 解决了多线程并发下的线程安全问题, 其实使用其他方式也可以达到同样的效果
以上代码就是使用静态内置类实现了单例模式, 这里将前面验证多线程下执行情况的 MyThread 类放入到 org.mlinge.s06 包下运行
4.Double Check Locking 双检查锁机制
为了达到线程安全, 又能提高代码执行效率, 我们这里可以采用 DCL 的双检查锁机制来完成
5. 序列化与反序列化的单例模式实现
静态内部类虽然保证了单例在多线程并发下的线程安全性, 但是在遇到序列化对象时, 默认的方式运行得到的结果就是多例的
序列化与反序列化测试代码:
来源: http://www.bubuko.com/infodetail-2516769.html