java单例模式—210419

1、单例模式的三个特点?

1)单例类只能有一个实例。

2)单例类必须自己创建自己的唯一实例。

3)单例类必须给所有其他对象提供这一实例。


2、单例模式分类

懒汉式单例、饿汉式单例


3、饿汉式单例和懒汉式单例区别

区别1:线程安全

饿汉式天生是线程安全的。

懒汉式不是线程安全的,有三种方法可以实现线程安全。

方法1)在getInstance方法上加同步;

方法2)双重检查锁定;

方法3)静态内部类;


区别2:对象创建的时机不同

饿汉式单例:类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了。

懒汉式单例:只有当调用getInstance的时候,才会去初始化这个单例。


4、单例模式的应用场景

线程池、缓存、日志对象、对话框、打印机等。


5、为什么类加载机制能保证初始化instance时只有一个实例?

Java源码使用同步(synchronized)的方式来保证。

漫画:什么是单例模式?(整合版)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、前言 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为...
    manimaniho阅读 496评论 0 0
  • 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用...
    SpaceCat阅读 1,238评论 1 7
  • 1. 懒汉式 分析:  懒汉式给getInstance方法加上了同步锁,解决了多线程的情况下可能创建多个实例的问题...
    qiuxintai阅读 493评论 0 1
  • 本文转载自:Java单例模式——并非看起来那么简单 Java中单例(Singleton)模式是一种广泛使用的设计模...
    简书汪阅读 588评论 0 0
  • 原文出处:http://blog.csdn.net/goodlixueyong/article/details/5...
    晒晒太阳补补钙阅读 375评论 0 0

友情链接更多精彩内容