package chapter02;

public class TestSingleton {
private TestSingleton() {
}

public static TestSingleton getInstance() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}

// 通过枚举返回当前类的实例
return Singleton.INSTANCE.getInstance();
}

private enum Singleton {
INSTANCE;

private TestSingleton singleton;

// 私有的构造方法
private Singleton() {
// 在类加载的时候执行一次
System.out.println("对象创建");

singleton = new TestSingleton();
}

public TestSingleton getInstance() {

return singleton;
}
}
}

转载于:https://www.cnblogs.com/Koma-vv/p/9642563.html

枚举编写单例是可以保证在多线程中的安全性相关推荐

  1. Swift中编写单例的正确方式

    本文由CocoaChina译者leon(社区ID)翻译自krakendev 原文:THE RIGHT WAY TO WRITE A SINGLETON 转载请保持所有内容和链接的完整性. 在之前的帖子 ...

  2. 【深入设计模式】单例模式—从源码分析内部类单例、枚举单例以及单例模式在框架中的应用

    文章目录 1. 使用静态内部类实现单例模式 1.1 静态内部类单例写法 1.2 如何实现懒加载 1.3 为什么线程安全 2. 枚举类型单例单例模式 2.1 枚举类型单例写法 2.2 枚举类型单例原理 ...

  3. 面试官:为啥需要枚举?枚举有什么作用?怎么用枚举实现单例?

    点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...

  4. 黑马程序员,黑马论坛--------枚举和单例设计模式的区别

    文章来源:黑马程序员,黑马论坛 枚举和单例设计模式的区别,黑马面试有的 public class Test11 { public static void main(String[] args) {   ...

  5. JAVA编写单例(Singleton)模式

    单例(Singleton)模式:在Java应用程序中,一个类Class只有一个实例存在. 第一种写法形式(饿汉式): 定义一个类,它的构造函数为private的,它有一个private的static的 ...

  6. 【单例深思】枚举实现单例原理

    单例的枚举实现在<Effective Java>中有提到,因为其 功能完整.使用简洁.无偿地提供了序列化机制.在面对复杂的序列化或者反射攻击时仍然可以绝对防止多次实例化等优点, 单元素的枚 ...

  7. Java枚举and单例

    枚举 什么是枚举? 所谓的枚举,就是把某个类所有的对象一一罗列出来. 枚举类:这个类的对象是有限的. 定义枚举的语法格式 public enum 枚举类类名{值1, 值2, 值3, 值4; } 示例 ...

  8. 枚举实现单例singleton

    枚举不仅可以解决线程同步问题, 还可以防止反序列化(没有构造方法), 也就是无法通过反射的方式创建出对象. 目前为止, 枚举是最好的实现单例的方式, 但是比较别扭, 明明是一个类, 非得定义成一个枚举 ...

  9. 线程安全单例最佳实践,C#中的Lazy是如何保证线程安全的

    在.NET 4.0之后,.NET Framework中提供了一种安全的延迟加载类型Lazy Lazy能够在多线程环境下,保证GetValue函数只执行一次,从而实现单例模式 在过去,实现单例模式我们通 ...

最新文章

  1. CentOS下添加新硬盘并分区格式化
  2. [RN] React Native 自定义 底部 弹出 选择框 实现
  3. 【数据结构与算法】2.深度优先搜索DFS、广度优先搜索BFS
  4. 接口自动化实现图片上传(selenium/RF)
  5. Dynamics CRM - 如何修复 Access Is Denied,ObjectTypeCode: 2500 的错误
  6. [转]html超链接打开的窗口大小
  7. 做计算机工作的要专用手机吗,怎么在手机上完成工作?原来没有电脑手机还可以这样用...
  8. tez什么意思_Tezos 与 Ethereum 的区别
  9. 刷题总结——湫湫系列故事——设计风景线(hdu4514 并差集判环+树的直径)
  10. 如何选择Sencha Touch和jQuery Mobile
  11. fiddler手机抓包 443
  12. android 六边形布局,自定义Android六边形进度条(附源码)
  13. bdg2bw(macs2的peak要修正坐标)
  14. 全国计算机等级考试 贴吧,【全国计算机等级考试】
  15. 借用该函数验证哥德巴赫猜想:任意一个大的偶数都可以分解成两个素数之和。
  16. 8086CPU结构与功能
  17. 有趣的Unicode字符
  18. 富芮坤蓝牙FR801xH开发环境搭建
  19. 男性健身全攻略 男人4大方法快速塑形
  20. 漏洞挖掘所需能力梳理,查漏补缺(更新中~)

热门文章

  1. python小括号( )与中括号 [ ]
  2. MongoDB副本集配置系列六:定位MongoDB慢的原因
  3. linux编程之信号
  4. sql server分布式事务解决方案
  5. 多媒体查询@media
  6. LeetCode(1108)——IP 地址无效化(JavaScript)
  7. LeetCode(693)——交替位二进制数(JavaScript)
  8. 【Vue2.0】—Vue脚手架配置代理(二十二)
  9. 【CSS】解决图片和盒子底部产生的缝隙问题
  10. win7计算机未连接网络连接,解决win7能上网但是网络图标显示未连接的方法-win7之家...