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

总结

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

相关推荐
想唱rap7 分钟前
C++ list 类的使用
c语言·开发语言·数据结构·c++·笔记·算法·list
景彡先生10 分钟前
Python函数定义与调用全解析:从基础语法到实战技巧
linux·开发语言·python
一 乐30 分钟前
汽车销售|汽车推荐|基于SprinBoot+vue的新能源汽车个性化推荐系统(源码+数据库+文档)
java·数据库·vue.js·汽车·毕设·汽车个性化推荐
虾说羊36 分钟前
最细Maven教程以及Maven私服搭建
java·数据库·maven
杯莫停丶40 分钟前
设计模式之:装饰器模式
java·设计模式·装饰器模式
lingchen19061 小时前
MATLAB图形绘制基础(一)二维图形
开发语言·算法·matlab
朝新_1 小时前
【EE初阶】JVM
java·开发语言·网络·jvm·笔记·算法·javaee
如果丶可以坑1 小时前
maven无法获取依赖问题
java·maven·1024程序员节