单例模式的几种实现方式
单例模式的几种实现方式
单例模式单例模式是一种常见的设计模式,而关于单例模式的实现又有以下几种实现方式:饿汉单例,懒汉单例,双重校验锁,静态内部类等实现饿汉单例该懒汉单例是线程安全的,但是存在资源浪费的情况,在程序启动时就会创建该类的实例。代码语言:javascript代码运行次数:0运行复制/**
* @author: dlwlrma
* @data 2025年01月15日 16:4
*
单例模式的几种实现方式
单例模式是一种常见的设计模式,而关于单例模式的实现又有以下几种实现方式:饿汉单例,懒汉单例,双重校验锁,静态内部类等实现
饿汉单例
该懒汉单例是线程安全的,但是存在资源浪费的情况,在程序启动时就会创建该类的实例。
代码语言:javascript代码运行次数:0运行复制/**
* @author: dlwlrma
* @data 2025年01月15日 16:4
* @Description 单例模式之懒汉单例
*/
public class Singleton {
//私有静态成员变量,在使用时才会创建实例
private static Singleton instance = new Singleton();
//私有构造方法
private Singleton() {
}
//唯一的公共访问点
public static Singleton getInstance(){
return instance;
}
}
懒汉单例
代码语言:javascript代码运行次数:0运行复制/**
* @author: dlwlrma
* @data 2025年01月15日 16:40
* @Description 懒汉单例
*/
public class Singleton {
//私有静态成员变量,初始化为null
private static Singleton instance = null;
//私有构造器
private Singleton() {
}
//获取唯一可用实例,先判断是否已经创建实例,如果没有创建,则创建实例
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
双重校验锁(DLC)
代码语言:javascript代码运行次数:0运行复制/**
* @author: dlwlrma
* @data 2025年01月15日 16:50
* @Description 双重校验锁
*/
public class Singleton {
private volatile static Singleton instance = null;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized () {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
静态内部类
代码语言:javascript代码运行次数:0运行复制/**
* @author: dlwlrma
* @data 2025年01月15日 16:55
* @Description 静态内部类
*/
public class Singleton{
private Singleton(){
}
private static class SingletonHolder{
private static final Singleton instance = new Singleton();
}
public static Singleton getInstance(){
return SingletonHolder.instance;
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent 删除singleton变量单例模式instanceprivate
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-21 00:30:18
上一篇:【机器学习】时序数据与序列建模:理论与实践的全面指南
下一篇:几张图轻松搞定JVM
推荐阅读
留言与评论(共有 17 条评论) |
本站网友 员工奖励制度 | 24分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 当阳一中 | 20分钟前 发表 |
懒汉单例 | |
本站网友 沙井租房网 | 19分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 外盘 | 18分钟前 发表 |
但是存在资源浪费的情况 | |
本站网友 隔热断桥铝门窗 | 14分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 老香洲租房 | 28分钟前 发表 |
先判断是否已经创建实例 | |
本站网友 联想服务器型号 | 0秒前 发表 |
55 * @Description 静态内部类 */ public class Singleton{ private Singleton(){ } private static class SingletonHolder{ private static final Singleton instance = new Singleton(); } public static Singleton getInstance(){ return SingletonHolder.instance; } } 本文参与 腾讯云自媒体同步曝光计划 | |
本站网友 牙周炎治疗 | 5分钟前 发表 |
而关于单例模式的实现又有以下几种实现方式:饿汉单例 | |
本站网友 鱼油的作用 | 7分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 红黑红红黑 | 5分钟前 发表 |
而关于单例模式的实现又有以下几种实现方式:饿汉单例 | |
本站网友 衢州买房 | 26分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 图片仓库 | 26分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 排屑装置 | 13分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 山东联合化工股份有限公司 | 12分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 朱庆福 | 8分钟前 发表 |
dlwlrma * @data 2025年01月15日 16 | |
本站网友 应用软件 | 1分钟前 发表 |
在程序启动时就会创建该类的实例 |