乐趣区

关于java:常用设计模式之单例设计模式

罕用设计模式之单例设计模式

小伙伴们对于单例设计模式理解有多少呢?

懒汉试、饿汉式、还有吗?双重判断 ……

明天我来带大家重新认识一下 7 种单例设计模式,没错,你没看错,是 7 种!

第一种,饿汉式单例设计模式

饿汉式是老熟人了,不多 bb,间接上码!

  • 类加载到内存后,就实例化一个单例,JVM 保障线程平安
  • 简略实用,举荐应用
  • 惟一毛病就是,不论是否应用,类加载时就实现实例化

第二种,懒汉式单例设计模式

也是老熟人了,间接上码!

  • 解决了饿汉式的一点毛病,但却引入了线程平安问题

第三种,synchronized 版本一单例设计模式

  • 解决了第二种的线程平安问题,然而带来了效率降落的问题

第四种,synchronized 版本二单例设计模式

  • 尝试将办法锁换成代码块锁,想要用缩小锁的力度来换取一点效率上的晋升,然而却又引入了线程平安的问题

第五种,双重判断单例设计模式

  • 利用双重判断,解决了线程平安的问题

越来越思念单例最后的版本 ……………..

第六种,动态外部类单例设计模式

  • JVM 保障单例,并且加载外部类时不会加载外部类,又实现了懒加载

丑陋!完满!你认为这样就完结了吗?上面有请咱们的神级版本第七种,枚举单例

第七种,枚举单例

  • 不仅解决了线程同步,而且能够避免反序列化

我 MingLog 愿称你为最强单例

看完这些,是不是让你对单例设计模式有了更深层次的认知呢,学废了嘛,学废了就点个赞再走吧

退出移动版