思想:

  饿汉模式是最常提及的2种单例模式之一,其核心思想,是类持有一个自身的 instance 属性,并且在申明的同时立即初始化。

  同时,类将自身的构造器权限设为 private,防止外部代码创建对象,对外只提供一个静态的 getInstance() 方法,作为获取单例的唯一入口。

public final class EagerSingleton {private static final EagerSingleton instance = new EagerSingleton();private EagerSingleton() {if (instance != null) {throw new IllegalStateException();}}public static final EagerSingleton getInstance() {return instance;}}

  • 为什么在私有构造器中加入对 instance 属性的空校验?

  为了阻止反射的入侵,从而打破单例。

  • 多线程的情况下会不会打破单例?

  不会,因为 EagerSingleton 是在加载类的同时进行对象的创建,所以即使在多线程并发的情况下,仍然可以保证单例。

  • 优势?劣势?

  在加载类的同时创建单例对象,如果这个对象不是立刻需要使用的,会额外增加内存的消耗。

转载于:https://www.cnblogs.com/jing-an-feng-shao/p/7498750.html

设计模式(一)单例模式:1-饿汉模式(Eager)相关推荐

  1. java设计模式之单例模式|单例模式之饿汉模式、懒汉模式、枚举方式|最详细的6种懒汉模式详解

    目录 一.单例模式 二.饿汉模式和懒汉模式 1.饿汉模式,线程安全 2.懒汉模式 懒汉模式1,线程不安全(不常用) 懒汉模式2,线程安全(不常用) 懒汉模式3,线程安全,双重校验(不常用) 懒汉模式4 ...

  2. 单例模式之饿汉模式懒汉模式

    前言 单例模式能保证某个类在程序中只存在唯一一份实例,而不会创建出多个实例,比如 JDBC 中的 DataSource 实例就只需要一个.单例模式具体的实现方式有"饿汉" 和 &q ...

  3. 设计模式之单例模式(饿汉式,懒汉式)

    饿汉式单例模式 public class Singleton1{/**一开始就创建了一个实例**/private static Singleton1 instance = new Singleton1 ...

  4. 【设计模式:单例模式】单例模式01:饿汉模式

    单例模式:饿汉模式 正文开始@Assassin 目录: 单例模式:饿汉模式 1. 什么是设计模式? 2. 单例设计模式: 2.1 什么是单例模式? 2.2 单例模式应用实例: 1. 什么是设计模式? ...

  5. C# 设计模式之单例模式(懒汉模式、饿汉模式、静态内部类模式)

    C# 设计模式之单例模式(懒汉模式.饿汉模式.静态内部类模式) 应用场景:在整个软件运行生命周期内,一个类只允许一次实例化,例如数据库连接池的连接对象创建:通过使用单例模式来避免反复创建连接对象,从而 ...

  6. 单例模式——饿汉模式懒汉模式

    目录 一.什么是单例模式? 二.单例模式的应用场景 三.两种典型的方式实现单例模式 1.饿汉模式 2.懒汉模式 3.理解懒汉模式和饿汉模式 四.单例模式和线程的关系 1.饿汉模式是否线程安全? 2.懒 ...

  7. 单例模式(懒汉模式-双检锁、饿汉模式、静态内部类模式)-详细

    文章目录 前言 单例模式(懒汉模式-双检锁.饿汉模式.静态内部类模式)-详细 01 单例模式是什么? 02 单例模式的好处? 03 单例模式的三种模式 03::01 懒汉模式 03::01::01 问 ...

  8. 设计模式、原则、饿汉式单例模式、抽象工厂、代理模式、观察者模式、模板方法模式使用场景

    设计模式 ​ 对各种面向对象方法的一种总结.前辈们遇到了好多设计问题,然后利用面向对象解决了.然后他们把解决方案汇总起来,形成了20多种设计模式.它可以有效的帮助我们利用面向对象,来提高代码的复用性. ...

  9. C++设计模式--单例模式详解(懒汉模式、饿汉模式、双重锁)

    C++设计模式--单例模式详解(懒汉模式.饿汉模式.双重锁) 应用场景 一.单例模式是什么? 二.使用步骤 1.UML图 2.代码实现 应用场景 通常我们在做通讯的时候,我们跟服务器数据交互,假如每次 ...

  10. 2023-01-26 JS设计模式-单例模式:单例模式的原理和实现,懒汉模式和饿汉模式,单例模式实现登录框

    文章目录 1.什么是单例模式? 介绍 特点 结构 2.如何实现一个单例模式? 思路 实现代码 3.单例模式的优缺点 4.懒汉模式和饿汉模式 懒汉模式:一开始不会实例化,什么时候用才new出来实例化 饿 ...

最新文章

  1. 004_SpringBoot整合Listener
  2. 激活函数:sigmoid、Tanh、ReLU
  3. 微信小程序实战–集阅读与电影于一体的小程序项目(八)
  4. spring mvc学习(26):处理数据模型--从表单到controller传输数据
  5. unity3d 随机物体生成器 工具
  6. 关于Git和Github
  7. Oracle In Memory最佳实践(附PPT和视频回放)
  8. (11)System Verilog对象复制
  9. Python之倒序访问list
  10. 本地修改服务器上的内容,本地修改指向服务器
  11. java接口对接——别人调用我们接口获取数据
  12. GTUG的推荐给大家的一本书
  13. NDK开发之数组操作
  14. 常用生物信息学格式介绍
  15. 常用音频单位简介:dBSPL、dBm、dBu、dBV、dBFS
  16. Hive | 用sort_array函数解决collet_list列表排序混乱问题
  17. Word论文排版之样式的使用
  18. Redis分布式锁真的安全吗?
  19. 28、制作畅销书排行榜页面
  20. 在python中、int表示的数据类型是_python--002--数据类型(int、str)

热门文章

  1. 链接服务器 修改端口号,服务器修改远程链接端口号
  2. mysql 命令查看sql文件大小_用SQL命令查看Mysql数据库大小
  3. Dell服务器如何重装操作系统 windows server
  4. Docker教程小白实操入门(9)--基于export导出容器与基于import导入一个镜像
  5. 在不安装oracle,在linux上安装oracle 10g上还是不顺利
  6. java jsonarray 拷贝_JSONObject与JSONArray使用
  7. spring boot 相关快捷内置类和配置
  8. Mahout 安装配置及一个简单测试
  9. Cglib 代码生成库使用快速入门
  10. VMware 虚拟机安装 CentOS 7.2 系统