2_单列模式_饿汉式单例模式

news/2024/6/3 19:55:36 标签: 单例模式, 饿汉式单例模式

一. 饿汉式单例模式

(1) 饿汉式单例模式概念

饿汉式单例模式类加载的时候就立即初始化,并且创建单例对象。它绝对线程安全,在线程还没出现以前就实例化了,不可能存在访问安全问题

(2) 代码实现

public class HungrySingleton {
    private static final HungrySingleton hungrySingleton = new HungrySingleton();
    
    private HungrySingleton(){}
    
    public static HungrySingleton getInstance(){
        return  hungrySingleton;
    }
}

(3)优缺点

  • 优点:执行效率高,性能高,没有任何的锁
  • 缺点:某些情况下,可能会造成内存浪费, 反射破坏, 序列化破坏单例

(4)使用场景

  • 饿汉式单例模式适用于单例对象较少的情况。这样写可以保证绝对线程安全、执行效率比较高。
  • 但是它的缺点也很明显,就是所有对象类加载的时候就实例化这样一来,如果系统中有大批量的单例对象存在,那系统初始化是就会导致大量的内存浪费。

http://www.niftyadmin.cn/n/5315453.html

相关文章

MIT 6.s081前置xv6教材和课程总结——第二章 操作系统架构

系列文章目录 MIT 6.s081前置xv6教材和课程总结——第一章 操作系统接口 MIT 6.s081前置xv6教材和课程总结——第二章 操作系统架构 文章目录 系列文章目录概述1. 抽象系统资源2. 用户态,核心态,以及系统调用3. 内核组织 概述 操作系统必须满足三个要求…

java常见面试题:什么是命令模式(Command Pattern)?如何实现命令模式?

命令模式是一种行为型设计模式,它将请求封装成对象,从而允许使用不同的请求对客户进行参数化,对请求进行排队或记录请求日志,以及提供命令的撤销和重做功能。 命令模式是一种行为型设计模式,它提供了一种将请求封装成…

Python学习之路-语法

Python学习之路-语法 简介 Python的设计目标之一是让代码具备高度的可阅读性。在设计时尽量使用经常使用的标点符号和英文单字,让代码看起来整洁美观。 缩进 在Python中缩进表示语句块的开始和结束,作用等同于Java、Go中的大括号。增加缩进表示语句块…

使用FFmpeg+EasyDarwin搭建音视频推拉流测试环境

1. 前言 在上一篇文章《使用VS2017在win10 x64上编译调试FFmpeg(附源码和虚拟机下载)》中,我们讲解了如何搭建FFmpeg源码编译和调试环境。 调试FFmpeg,还需要搭建流媒体服务器。流媒体服务器的作用是通过网络对外提供音视频服务…

【机器视觉】机器视觉实验一——图像边缘检测

一、实验要求 1.读取文件并且将图片转为8bit;完成图像的拼接;图像框选 2边缘检测的主要步骤是: (1)为每个像素分配分数; (2) 沿垂直于边缘的方向找到局部最大值。有时执行第三步,传播局部证据,以便长轮廓更加自信,或者强边缘增强附近弱边缘的自信。 构建一个简单…

Python(33):数据断言(查询数据库数据和插入数据对比)

Python(33):数据断言(查询数据库数据和插入数据对比) 前言: 需求:需要针对查询数据库数据和插入的数据进行对比,用Python语言进行编写 数据库查询的结果可参考:https://blog.csdn.net/fen_fen/article/details/135462484 1、查…

RT-Thread基于AT32单片机的485应用开发(三)Modbus从机

RT-Thread中已经有不少Modbus相关在线软件包,但总体应用起来还是相对复杂,所以在RT-Thread基于AT32单片机的485应用开发(二)的基础上实现了一个极简Modbus从机,支持Modbus功能码01,02,03&#x…

鸟类分类、鸟类声音相关深度学习数据集大合集

最近收集了一大波和鸟类相关的图片、声音数据集,包含:鸟类分类、鸟类声音识别、鸟类和无人机分类、鸟类状态、鸟类行为等相关数据集。现在分享给大家!! 1、英国20大园林鸟类的图像数据集 20英国花园鸟类数据集提供了20个类别的3…