java的单例设计模式

Java中的单例设计模式是一种创建对象的设计模式,用于保证在整个应用程序的生命周期中只创建一个实例对象。

在Java中,有多种方式可以实现单例设计模式,以下是最常用的几种方式:

  1. 饿汉式单例模式:在类加载时就创建实例对象。该方式保证了线程安全,但是在整个应用程序生命周期中都会存在实例对象,可能会占用较多的内存空间。
java 复制代码
public class Singleton {
    private static final Singleton instance = new Singleton();

    private Singleton() {
    }

    public static Singleton getInstance() {
        return instance;
    }
}
  1. 懒汉式单例模式:在第一次访问时才创建实例对象。该方式在多线程环境下可能存在线程安全问题,需要进行额外的线程安全处理。
java 复制代码
public class Singleton {
    private static Singleton instance;

    private Singleton() {
    }

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
  1. 双重检验锁单例模式:在第一次访问时才创建实例对象,并使用双重检验锁来确保线程安全。
java 复制代码
public class Singleton {
    private volatile static Singleton instance;

    private Singleton() {
    }

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
  1. 静态内部类单例模式:使用静态内部类来实现单例模式,确保懒加载和线程安全。
java 复制代码
public class Singleton {
    private Singleton() {
    }

    private static class SingletonHolder {
        private static final Singleton instance = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonHolder.instance;
    }
}

上述是Java中常用的几种单例设计模式的实现方式,根据具体的需求和场景选择合适的方式。

相关推荐
凤山老林1 小时前
04-Java JDK, JRE和JVM
java·开发语言·jvm
camellias_8 小时前
【无标题】
java·tomcat
咸鱼2.08 小时前
【java入门到放弃】需要背诵
java·开发语言
椰猫子8 小时前
Java:异常(exception)
java·开发语言
win x9 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
星晨雪海9 小时前
基于 @Resource 的支付 Service 多实现类完整示例
java·开发语言
阿维的博客日记9 小时前
什么是逃逸分析
java·juc
Ricky_Theseus10 小时前
C++右值引用
java·开发语言·c++
Rick199310 小时前
Java内存参数解析
java·开发语言·jvm
我是大猴子10 小时前
Spring代理类为何依赖注入失效?
java·后端·spring