设计模式-单例

一、单例介绍

  • 单例概念

 单例模式是一种对象创建模式,它用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例

  • 好处

 对于频繁使用对象,可以省略创建对象所花的时间,对于那些重量级对象而言,是非常可观的一笔系统开销

由于new操作的次数减少,因而对系统内存的使用频率也会降低,这也将减轻GC压力,缩短GC停顿时间

二、单例的六种写法和各自特点

 不足之处:无法对instance实例做延时加载

优化:懒汉

 

不足之处:在多线程并发下这样的实现是无法保证实例是唯一的

优化:懒汉线程安全

 

不足之处:性能

优化:DCL

 

不足之处:JVM的即时编辑器中存在指令重排序的优化

优化:静态内部类 / 枚举

 

有点:JVM本身机制保证了线程安全 / 没有性能缺陷

原因:static / final

 

优点:写法简单 / 线程安全

 

  • 饿汉 
  • 懒汉
  • 懒汉线程安全
  • DCL(双重线程锁)
  • 静态内部类
  • 枚举

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值