当前位置: 首页> 文旅> 文化 > 专业web建站服务_重庆网站建设公司魁网_5月疫情最新消息_烟台seo

专业web建站服务_重庆网站建设公司魁网_5月疫情最新消息_烟台seo

时间:2025/7/9 21:50:50来源:https://blog.csdn.net/m0_45362454/article/details/144831853 浏览次数:0次
专业web建站服务_重庆网站建设公司魁网_5月疫情最新消息_烟台seo

如何实现一个单例

1、构造器需要私有化

2、提供一个私有的静态变量

3、暴露一个公共的获取单例对象的接口

需要考虑的两个问题

1、是否支持懒加载

2、是否线程安全

1、饿汉式
public class EagerSingleton {private static final EagerSingleton INSTANCE = new EagerSingleton();private EagerSingleton(){}public EagerSingleton getInstance(){return INSTANCE;}}

不支持懒加载

线程安全

2、懒汉式
public class LazySingleton {private static LazySingleton INSTANCE;private LazySingleton() {}public static LazySingleton getInstance() {if (INSTANCE == null) {INSTANCE = new LazySingleton();}return INSTANCE;}
}

支持懒加载

线程不安全

public class LazySingleton {private static LazySingleton INSTANCE;private LazySingleton() {}public static synchronized LazySingleton getInstance() {if (INSTANCE == null) {INSTANCE = new LazySingleton();}return INSTANCE;}
}

支持懒加载

线程安全

3、双重检查锁
public class DoubleCheckSingleton {private static DoubleCheckSingleton INSTANCE;private DoubleCheckSingleton() {}public DoubleCheckSingleton getInstance() {if (INSTANCE == null) {synchronized (DoubleCheckSingleton.class) {if (INSTANCE == null) {INSTANCE = new DoubleCheckSingleton();}}}return INSTANCE;}
}

支持懒加载

线程安全

4、静态内部类
public class InnerSingleton {private InnerSingleton() {}public static InnerSingleton getInstance() {return Singleton.INSTANCE;}private static class Singleton {private static final InnerSingleton INSTANCE = new InnerSingleton();}
}

支持懒加载

线程安全

5、枚举
public enum EnumSingleton {INSTANCE}

支持懒加载

线程安全

关键字:专业web建站服务_重庆网站建设公司魁网_5月疫情最新消息_烟台seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: