您现在的位置是:首页 > 编程 > 

单例模式的几种实现方式

2025-07-21 04:22:16
单例模式的几种实现方式 单例模式单例模式是一种常见的设计模式,而关于单例模式的实现又有以下几种实现方式:饿汉单例,懒汉单例,双重校验锁,静态内部类等实现饿汉单例该懒汉单例是线程安全的,但是存在资源浪费的情况,在程序启动时就会创建该类的实例。代码语言: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组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1164271.html

相关标签:无
上传时间: 2025-07-21 00:30:18
留言与评论(共有 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分钟前 发表
在程序启动时就会创建该类的实例