java单例模式的实现方式是什么

   2025-02-04 3060
核心提示:Java中实现单例模式的方式有以下几种:饿汉式(Eager Initialization):在类加载时就创建单例对象,并通过静态方法返回。此方式

Java中实现单例模式的方式有以下几种:

饿汉式(Eager Initialization):在类加载时就创建单例对象,并通过静态方法返回。此方式在多线程环境下是安全的。
public class Singleton {    private static final Singleton instance = new Singleton();        private Singleton() {}        public static Singleton getInstance() {        return instance;    }}
懒汉式(Lazy Initialization):在调用获取单例对象的方法时才创建单例对象。此方式在多线程环境下需要进行线程同步处理。
public class Singleton {    private static Singleton instance;    private Singleton() {}    public static synchronized Singleton getInstance() {        if (instance == null) {            instance = new Singleton();        }        return instance;    }}
双重校验锁(Double-Checked Locking):在懒汉式的基础上进行改进,在创建实例时增加了一次判空校验,减少了不必要的同步开销。
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;    }}
静态内部类(Static Inner Class):利用静态内部类的特性,实现懒加载并保证线程安全。
public class Singleton {    private Singleton() {}    private static class SingletonHolder {        private static final Singleton instance = new Singleton();    }    public static Singleton getInstance() {        return SingletonHolder.instance;    }}
枚举(Enum):利用枚举的特性,实现单例模式。枚举是线程安全且只会被实例化一次。
public enum Singleton {    INSTANCE;    // 需要添加的单例对象的其他方法}

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言