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();
    }
}

总结

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

相关推荐
基德爆肝c语言16 分钟前
Qt—信号和槽
开发语言·qt
geovindu16 分钟前
go:Decorator Pattern
开发语言·设计模式·golang·装饰器模式
工业甲酰苯胺17 分钟前
Tomcat的事件监听机制:观察者模式
java·观察者模式·tomcat
ximu_polaris20 分钟前
设计模式(C++)-行为型模式-观察者模式
c++·观察者模式·设计模式
故事和你911 小时前
洛谷-算法2-1-前缀和、差分与离散化1
开发语言·数据结构·c++·算法·深度优先·动态规划·图论
励志的小陈7 小时前
贪吃蛇(C语言实现,API)
c语言·开发语言
QC班长7 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Makoto_Kimur7 小时前
java开发面试-AI Coding速成
java·开发语言
laowangpython8 小时前
Gurobi求解器Matlab安装配置教程
开发语言·其他·matlab
wengqidaifeng8 小时前
python启航:1.基础语法知识
开发语言·python