Java设计模式之单例设计模式(懒汉、饿汉)

【技能---ubuntu20.04更换国内镜像源】 安装好ubuntu20.04后,在下载软件等安装包的时候,速度特别的慢,为此就想着更换一下镜像源,以此来增加下载的速度!!!下面是换源的具体流程!!!提示:以下是本篇文章正文内容,下面案例可供参考以上到这里就更换完软件源了,如有不足之处,请大家斧正!!! 阅读详情

Java设计模式之单例设计模式(懒汉、饿汉)

相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试了?或许不够吧,权当学习了解一下吧。

单例模式的含义: 单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,
应用该模式的这个类永远只有一个实例。即一个类永远只有一个对象实例。

单例的应用场景:在实际开发中,有很多业务对象永远只需要一个,无论启动多少次
我们只需要一个对象,例如任务管理对象,只需要一个对象。节约内存和性能。

饿汉单例设计模式

屁话上说,直接上代码吧。

package singleinstance;

import org.junit.Test;

/**
 * ClassName: SingleInstanceHungry
 * Description: 饿汉单例设计模式
 * 在用类获取对象的时候,类已经提前创建好了
 * 步骤:①定义一个类,构造器私有
 *       ②定义一个静态变量储存一个对象
 *       //③提供一个返回单例对象的方法
 * Author: hhj
 * Date: 19:58 2019/11/24
 * Version: 1.0
 */
public class SingleInstanceHungry {

    @Test
    public void test01(){
        SingleInstance01 s1 = SingleInstance01.INS;
        SingleInstance01 s2 = SingleInstance01.INS;
        System.out.println(s1);  // singleinstance.SingleInstance01@4ee285c6
        System.out.println(s2);  // singleinstance.SingleInstance01@4ee285c6
        System.out.println(s1 == s2); // true
    }

    @Test
    public void test02(){
        SingleInstance02 t1 = SingleInstance02.getInstance();
        SingleInstance02 t2 = SingleInstance02.getInstance();
        System.out.println(t1);  // singleinstance.SingleInstance02@4ee285c6
        System.out.println(t2);  // singleinstance.SingleInstance02@4ee285c6
        System.out.println(t1 == t2);  //true
    }
}

/**
* Description: 写法一
* @author: hhj
* @date: 20:07 2019/11/24
* @param:
* @return:
*/
class SingleInstance01{
    public static final SingleInstance01 INS = new SingleInstance01();
    private SingleInstance01(){}
}

/**
* Description: 写法二
* @author: hhj
* @date: 20:07 2019/11/24
* @param:
* @return:
*/
class  SingleInstance02{
    public static final SingleInstance02 INS = new SingleInstance02();

    private SingleInstance02(){}

    public static SingleInstance02 getInstance(){
        return INS;
    }
}

懒汉单例设计模式

package singleinstance;

import org.junit.Test;

/**
 * ClassName: SingleInstanceLazy
 * Description: 懒汉单例设计模式
 * 在用类获取对象的时候,才会真正去创建一个对象,而不是提前创建好对象
 * 步骤:①定义一个类,把构造器私有
 * ②定义一个静态变量储存一个对象
 * ③提供一个返回单例对象的方法:在这个方法里面判断是否存在对象了,
 * 如果没有才创建,如果存在了就直接返回。这样保证了对象之创建一个对象
 * Author: hhj
 * Date: 19:59 2019/11/24
 * Version: 1.0
 */
public class SingleInstanceLazy {

    @Test
    public void test(){
        SingleInstance s1 = SingleInstance.getInstance();
        SingleInstance s2 = SingleInstance.getInstance();
        System.out.println(s1);  // singleinstance.SingleInstance@4ee285c6
        System.out.println(s2);  // singleinstance.SingleInstance@4ee285c6
        System.out.println(s1==s2);   // true
    }
}

/**
 * Description: TODO
 *
 * @author: 饿汉单例设计模式
 * @date: 20:22 2019/11/24
 * @param:
 * @return:
 */
class SingleInstance {
    private static SingleInstance ins;

    private SingleInstance(){}

    public static SingleInstance getInstance() {
        if (ins == null) {
            ins = new SingleInstance();
        }
        return ins;
    }
}

可能写的不是很深入,这里只是做一个简单介绍。
因为大学刚毕业的时候确实遇到过两次让我手写单例的情况。下次再遇到相信大家都能写出来的啦!

CMOS图像传感器系列--(四)HDR之LOFIC技术 CMOS图像传感器HDR技术之LOFIC解析 LOFIC(横向溢出积分电容器)技术是当前高动态范围成像的重要方案,通过在像素光电二极管旁设置高密度电容器收集溢出电荷,有效保留高光细节。该技术采用特殊像素结构,通过skim level触发电荷转移,实现单帧HDR成像。然而LOFIC存在显著局限性:高光区域噪声明显且难以消除,动态范围拓展不均衡(主要优化亮部),需复杂MIM工艺导致成本升高。为应对挑战,行业提出混合方案(如结合DCG技术)和工艺改进方向。OmniVision最新车载传感器OX08D10就采用了L 阅读详情

相关推荐

FreeRTOS-Plus-CLI使用笔记

FreeRTOS-Plus-CLI使用笔记 一、简介 详细介绍可参考FreeRTOS-Plus-CLI官网地址入口 FreeRTOS+CLI(Command Line Interface, 命令行接口)提供了一种简单、小型、可扩展且RAM高效的方法,使FreeRTOS应用程序能够处理命令行输入。添加一条指令的步骤如下: 提供一个实现命令功能的函数 将命令映射到该功能函数 注册命令 运行命令解释器 命令行调试接口对于排查分析出现的问题提供了很好的接口,可以通过查看传感器信息判断传感器是否正常,可以查看内置

ApexYuan 6964

JAVA的一丢丢基础

关于一个超级菜鸟的JAVA腾飞过程 一.JAVA基本语法 1.大小写敏感。 2。类名:首字母大写,下一个单词的首字母大写。 3.方法名:小写首字母,如有多个单词,则第二个单词首字母大写。 4.源文件名:与类名相同。 5.主方法入口:所有的JAVA程序由public static void main(String[]arges)方法开始执行。2 二.JAVA标识符 就是组成部分的名字

programme_626的博客 430

[OpenCV]使用霍夫变换精准检测圆形原理详解与代码实战

dp`是累加器分辨率与图像分辨率的反比,例如`dp=1`时累加器与图像具有相同的分辨率,`dp=2`时累加器分辨率为图像的一半;`HoughCircles`函数的返回值`circles`是一个包含检测到的圆的参数列表,每个圆的格式为`(x, y, r)`,分别代表圆心的x坐标、y坐标和半径。可以使用`cv2.circle()`函数在原图上绘制出检测到的圆,并使用`cv2.imshow()`或`cv2.imwrite()`显示或保存结果图像。霍夫圆变换是霍夫变换的一种扩展,专门用于检测图像中的圆形轮廓。

yr_lu的专栏 511

单例设计模式介绍||单例设计模式八种方式——1) 饿汉式(静态常量) 2) 饿汉式(静态代码块) 3) 懒汉式(线程不安全) 4) 懒汉式(线程安全,同步方法)

单例模式 单例设计模式介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFact...

qq_39368007的博客 278

告别全局搜索!7种SRP-PHAT快速算法实战对比:哪个更适合你的麦克风阵列?

本文深入探讨了7种SRP-PHAT改进算法在声源定位领域的实战表现,包括SRC、CFRC、SPF等方案。通过对比计算效率、定位精度和环境鲁棒性等核心指标,为不同场景(如会议室、智能家居、工业机器人)提供算法选型建议,帮助工程师优化麦克风阵列性能。

weixin_42546392的博客 397

逆向Shopee签名机制:从参数分析到稳定采集方案

本文深入解析了Shopee签名机制的逆向过程,从参数分析到稳定采集方案的实现。通过抓包定位关键参数`sap-ri`和`x-sap-sec`,还原了签名生成算法,并提供了Python实现代码。文章还分享了反反爬策略、性能优化技巧及长期维护建议,帮助开发者构建稳定的Shopee数据采集方案。

weixin_27722377的博客 672

创建型设计模式——单例模式

目录一、前言二、饿汉单例模式三、懒汉单例模式问题:多线程下会创建多个对象解决A:直接加synchronized锁解决B:synchronized锁+DCL(Double Check Lock)指令重排序问题(解决:volatile)解决C:静态内部类反射破坏问题解决:Enum 一、前言 单例设计模式:一个类永远只存在一个对象,不能创建多个对象。 为什么要用单例? 开发中有很多类的对象我们只需要一个,例如虚拟机对象、任务管理器对象;对象越多越占用内存,有些时候只需要一个对象就可以实现业务,单例可以节约

Xlaoer的博客 577

昆仑通态屏幕制作(连载1)---接触篇

写在开始 背景:最近出了做QT、LORA和4G,还做了一个屏幕。以前做了一个迪文的串口屏幕,发现网上的教程很多,所以连载就不更新了,并且迪文屏幕的设置什么的比较简单,应该从网上都能找到对应的教程。而现在用的昆仑通态的屏幕属于嵌入式屏幕,至于为啥叫嵌入式,也不是很明白,反正就是需要用这个屏幕,嵌入式不嵌入式不重要了。重要的是能用,并且能实现串口屏幕不能实现的功能。所以选定昆仑通态的一款屏幕。 文章语言:我比较习惯用比较糙的语言介绍做的东西,有时候不太准备,但是为了方便理解,还请大家谅解。用...

weixin_45426095的博客 6736

Java 单例设计模式、饿汉单例、懒汉单例

什么是单例? 单例的意思是一个类永远只存在一个对象, 不能创建多个对象。 为什么要用单例? 开发中有很多类的对象我们只需要一个, 例如虚拟机对象、任务管理器对象 对象越多越占内存,有些时候只需要一个对象 就可以实现业务,单例可以节约内存,提高性能。 如何实现单例? 饿汉单例设计模式: 通过类获取单例对象的时候,对象已经提前做好了 实现步骤: 定义一个单例类 把类的构造器私有 定义一个静态成员变量用于存储一个对象 (饿汉单例在返回对象的时候,对象要已经做好,所以这里直接创建出来) 定义一个方法返回单例对.

七七的博客 213

大模型——AI对话四象限

{ "摘要": "文章揭示了90%的人不会有效与AI沟通的问题,指出简单粗暴的提问只能得到标准答案。作者提出'AI对话四象限'模型:1)双方都懂时提效;2)AI懂但需学会分层提问;3)共同探索未知领域;4)向AI传授独家知识。强调沟通技巧的重要性,认为会提问的人不会被AI替代。最后呼吁读者尝试四象限思维,与AI碰撞火花。" }

311

1、使用Spark SQL查询Databricks:全面指南

本博客全面介绍了如何使用Spark SQL在Databricks平台上进行高效的数据查询与分析。内容涵盖SQL基础操作、数据过滤、复杂查询技巧、简单与高级计算、数据聚合、日期处理等核心主题,适合数据分析师、开发人员及SQL学习者。通过逐步讲解和实用示例,帮助读者掌握从入门到高级的SQL技能,并提供学习路径建议和免费代码资源,助力实际数据分析工作。

redis7keeper的博客 90

初步理解一下单例模式(饿汉、懒汉模式)

单例模式属于 创建型模式 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 1.饿汉式 是否 Lazy 初始化:否 是否多线程安全:是 这种方式比较常用,但容易产生垃圾对象。 /** * @Description 饿汉式单例 类初始化的时候已经实例化 * 线程安全 * @Date 2020/07/17 */ public class Singleton1 { private static Singleton1 s

weixin_44486966的博客 221

uniapp - 解决App端报错reportJSException >>>> exception function:createInstanceContext, exception:white sc

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,uniApp报错,reportJSException>>>>exceptionfunction:createInstanceContext,exception:whitescreencausecreateinstanceContextfailed,运行自定义基座时白屏,uniapp项目运行白屏reportJSException,检查没问题依旧报错,第三方库插件,组件,uniapp打包调试

🏆 前端领域优质创作者 1万+

java中饿汉与懒汉的故事(单例设计模式)

java中的单例设计模式 关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。 首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例。(不懂也没关系,会用就好) 一.饿汉式 饿汉式:可以理解为饿的不行了,就提前把吃饭工具准备好(new对象),再进行“吃”的操作。 用代码说话叭: 在这里插入代码片 二.懒

qq_51694024的博客 9502

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java单例设计模式(懒汉式和饿汉式)

java中的单例设计模式是一种常用的设计模式,它用于确保一个类中只有一个实例,并提供一个全局访问点来获取这个实例。单例模式有两个实现方法:懒汉式和饿汉式。

TZyangsFp的博客 1321

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java单例设计模式(懒汉式与饿汉式)

如果要在类的外部有且只有一个对象,我们需要怎么做呢首先要保证构造方法私有化,保证不能用new的方法来在外部创建对象。

2401_86266665的博客 430

java中什么是饿汉_java中饿汉与懒汉的故事(单例设计模式)

原文链接:https://blog.youkuaiyun.com/weixin_49527334java中的单例设计模式关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只...

weixin_32659481的博客 201

Java 基础-30-单例设计模式:懒汉式与饿汉式

饿汉式适合于实例一定会被使用的场景,简单高效,但可能会浪费资源。懒汉式适合于实例可能不会被使用的场景,可以延迟加载,但需要注意线程安全问题。如果追求简洁和安全性,推荐使用枚举单例或静态内部类实现。

2301_77312064的博客 1106

单例设计模式饿汉式和懒汉式的简单实现(Java语言实现)

单例设计模式饿汉式和懒汉式的简单实现(Java语言实现) 单例设计模式介绍 什么是单例设计模式: 所谓类的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且只提供一个取得对象实例的方法。 实现原理: 要使类只能产生一个对象,首先,我们必须将类的构造器的访问权限设置为 private,,这样我们就不能通过new关键字在外部多次创建对象了,但在类的内部我们仍可以产生该类的对象 因为在外部无法得到类的对象,我们只能提供一个 static关键字修饰过的静态方法来提供访问类内部

Kloud的酬勤笔记 203

java单例设计模式懒汉_Java设计模式之单例设计模式(懒汉、饿汉)

[toc]Java设计模式之单例设计模式(懒汉、饿汉)相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试了?或许不够吧,权当学习了解一下吧。单例模式的含义: 单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中, 应用该模式的这个类永远只有一个实例。即一个类永远只有一个对象实例。单例的应用场景:在...

weixin_42336364的博客 188

【java】单例设计模式——饿汉式和懒汉式、Runtime、Timer

单例设计模式:保证类在内存中只有一个对象一、饿汉式:1、私有构造方法:外界就不能创建对象2、创建本类对象3、对外提供公共的访问方法class Singleton { //1,私有构造方法,其他类不能访问该构造方法了 private Singleton(){} //2,创建本类对象 private static Singleton s = new Singleton(); //3,对外提供...

love_Aym的博客 367

java:单例懒汉与饿汉对比_Java单例设计模式----懒汉与饿汉

关于设计模式,这其实是单独存在的东西,它不属于 Java,也不属于任何语言所独有,但是在 Java 中使用较多,所以今天小编就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。推荐好课:Java 多线程讲解、深入解析 Java 面向对象。首先,我们先了解下单例模式的定义:单例设计模式目的是使得类的一个对象成为系统中的唯一实例。再看下,Java 中单例模式的定义:一个类有且仅有一个实例,并且自...

weixin_34966467的博客 272

java单例设计模式 懒汉式与饿汉式

1.简介:            单例设计模式目的是使得类的一个对象成为系统中的唯一实例       Java中单例模式的定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。        所谓“懒汉式”与“饿汉式”的区别,是在于建立单例对象的时间不同。“懒汉式”是在你真正用到的时候才去建这个单例对象 饿汉式:在不管你用的用不上,一开始就建立这个单例对象。

xckkcxxck的博客 1025

java饿汉式和懒汉式_Java 单例设计模式之 饿汉式和懒汉式

public class InstanceSampleTest {public static void main(String[] args) {/** 单例设计模式的 饿汉式和懒汉式* 单例模式,我们首先必须将类在一个虚拟机中只能产生一个对象,因此应该做到以下几步:* a:私有化构造方法,这样在该类的外边就不能用new操作来创建对象,但是在类的内部可以创建该类的对象。* b:调用该类的某个静态方...

weixin_39781143的博客 153

java单例设计模式之懒汉式和饿汉式

单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 如果我们要让类在一个虚拟机中只能产生一个对象: 将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。 提供一个public方法作为该类的访问点,用于创建该对象,必须是st...

专注技术 2545
上一篇: Python美女图片爬虫实战
下一篇: Java面试题、Java面试视频、源码分析
AllenTCR
博客等级 码龄9年 182粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值