设计模式 - 单例模式(饿汉,懒汉),就该这样学!

107 篇文章 13 订阅 ¥9.90 ¥99.00
15 篇文章 2 订阅
本文深入探讨了设计模式中的单例模式,介绍了Java和Kotlin中饿汉和懒汉两种实现方式。饿汉模式在类加载时创建实例,确保线程安全,而懒汉模式则延迟到首次调用时创建,提高了效率。在多线程环境下,懒汉模式需要额外处理线程安全问题,通过双重检查锁定和volatile关键字来实现。文章还分析了两种模式的优缺点,并给出了面试相关的问题解析。
摘要由CSDN通过智能技术生成

目录

一、何为单例模式?

二、饿汉模式

a)Java

b)Kotin

三、懒汉模式

a)Java 

b)Kotlin

四、懒汉和饿汉,谁线程安全,为什么?

五、如何修改,让懒汉模式也线程安全?

 面试题1:上图中的两个if一模一样,为什么要判断两遍?

面试题2:下图中的volatile有什么用?(懒汉模式完整代码)


一、何为单例模式?

        是一种给常见的设计模式,先来他谈谈何为设计模式,在代码领域里,很多程序员的水平参差不齐,于是就有大佬们根据一些常见的需求,整理出来的一些应对办法;那么单例就是指单个实例(对象),也就是说一个类只能有一个实例,例如,在中国,一个男人只能娶一个老婆是一个道理;

        单例模式,本质上就是借助变成语言的语法特性,强制限制某个类,不能创建多个实例。

        在Java中有些东西是天然的单例,例如static,他可以修饰成员/属性,也就是我们口中熟知的类成员/类属性,实际上这种叫法,也是有一定原因的,也就是这个类特有的成员和属性;更具体的来说,类对象是通过JVM针对某个.class文件只会加载一次,就只有一个类对象,包括类成员,都是靠static修饰,也就只有一份;


二、饿汉模式

a)Java

        这个模式表示一个类在加载的时候就创建好实例了,“饿汉”一词便体现出创建这个实例是非常急迫,非常早的;

来看看具体代码:

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈亦康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值