什么是单例设计模式?
单例设计模式是一种创建型设计模式,该模式涉及到一个类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种
访问其唯一对象的方式,可以直接访问,不需要实例化该类的对象。
优缺点
单例设计模式可以减少内存开销,提升运行效率,避免对资源的多重占用,并且可以实现数据共享。
实现:
实现单例模式的关键是:构造方法私有化;提供访问唯一对象的方法。
1.懒汉式(双检锁)
所谓懒汉式即在调用时在创建对象。由于添加锁,效率不高。
注意:由于指令重排序的原因,加上volatile很有必要。
代码:
1 | public class Singleton { |
2.饿汉式:
利用类加载机制,解决了懒汉式中多线程访问不安全的问题,提高了效率,但有可能浪费内存。
代码:
1 | public class Singleton1 { |
应用:
application对象、连接池。