所谓的单例设计模式就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。例如Hibernate的SessionFactory,一个项目只需要一个SeesionFactory即可。
使用场景:需要频繁进行创建和销毁的对象,创建对象消耗时间或资源过多,但又经常用到的对象。例如工具类对象,频繁访问数据库或者文件的对象(比如数据源、session工厂等)。
(Java并发编程-安全发布对象)
懒汉式:指全局的单例实例在第一次使用时构建。
饿汉式:指全局的单例实例在类加载时构建。
代码必备三要素:私有构造器、单例对象、静态工厂方法。
①懒汉式1:静态初始化函数
②懒汉式2:synchronized
③懒汉式3:双重同步锁
④懒汉式4:volatile禁止重排序
⑤饿汉式1
⑥饿汉式2
⑦枚举
Runtime码源: