java设计模式-单例

文章目录


前言

单例模式是一种创建型设计模式,它可以保证一个类只有一个实例,并提供全局访问点。单例模式在实际开发中经常使用,可以避免多个实例引起的资源浪费和同步问题。常见的java实现方式有多种。

一、饿汉式单例模式

饿汉式单例模式是指在类加载时就创建了单例对象,因此在调用时不需要再创建对象,直接使用即可。这种实现方式比较简单,但是在某些情况下可能会造成资源浪费。

二、懒汉式单例模式

懒汉式单例模式是指在调用时才创建单例对象,这种实现方式避免了资源浪费,但是需要注意线程安全问题。

三、双重检查锁单例模式

双重检查锁单例模式是指在懒汉式单例模式的基础上加入了双重检查锁机制,可以保证线程安全,同时也避免了资源浪费。

四、静态内部类单例模式

其中静态内部类单例模式最为常用,静态内部类单例模式利用了java语言中静态内部类的特性来实现单例模式。具体来说它将单例对象的创建延迟到静态内部类被加载时才执行,从而避免了多线程环境下的同步问题。代码示例如下:

java 复制代码
public class SingletonDemo {

    private static Map<String, String> idCodeMap=new ConcurrentHashMap<>();
    

    private SingletonDemo(){

    }
    public static SingletonDemo getInstance(){
        return SingletonHolder.INSTANCE;
    }
    private static class SingletonHolder{
        private static final SingletonDemo INSTANCE=new SingletonDemo();
    }
}

总结

单例模式的实现方式虽然很多,但只要记住常用的一种即可。

相关推荐
金銀銅鐵2 分钟前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计
艾伦_耶格宇1 小时前
【kubernetes - 1.28版本】-11 K8S核心组件
java·容器·kubernetes
Dxy12393102161 小时前
JS AES加密详解
开发语言·javascript·ecmascript
2301_780789661 小时前
深度伪造即服务:新型网络诈骗的“完美面具”与识别之道
java·网络·ddos
信息安全失业大专人员1 小时前
每日了解一个智能体-WorkBuddy
开发语言·ai·c#·智能体
LHICOD1 小时前
Linux-2
java·linux·后端·jar·vmware·svm·vm
香蕉大香蕉(06敬畏市场)1 小时前
MySQL 单点详解(03)
java·数据库·mysql·面试·八股·大厂实习
4ever.ov01 小时前
精学C++第一站 从命名空间到引用:C++入门核心语法全梳理(13000字长文)
开发语言·c++·clion
小杨互联网1 小时前
Go 现代 CLI 工具离线镜像合集
开发语言·后端·golang·开源·go·命令行
揽星河..1 小时前
【C语言】数组
c语言·开发语言·算法