1,枚举

public enum Color {blue, red, yellow
}

枚举是会被另外处理的。

  • 枚举只能拥有私有的构造器 枚举类实际上是一个继承Enum的一个final类
  • 枚举类不允许被反序列化,Enum重写了方法
  • 静态代码块中对final变量的值进行初始化
  • enum类最终是一个final class
public final class voctrals.study.whatisspring.test.Color extends java.lang.Enum<voctrals.study.whatisspring.test.Color> {public static final voctrals.study.whatisspring.test.Color blue;public static final voctrals.study.whatisspring.test.Color red;public static final voctrals.study.whatisspring.test.Color yellow;public static voctrals.study.whatisspring.test.Color[] values(); // jdk给加上的public static voctrals.study.whatisspring.test.Color valueOf(java.lang.String); // jdk给加上的public int getValue();static {};
}

Enum中的方法

    /*** prevent default deserialization*/private void readObject(ObjectInputStream in) throws IOException,ClassNotFoundException {throw new InvalidObjectException("can't deserialize enum");}private void readObjectNoData() throws ObjectStreamException {throw new InvalidObjectException("can't deserialize enum");}

2,单例模式

单例模式就是保证整个jvm中只存在唯一的一个实例。

饿汉式,在被jvm加载的过程中就已经被初始化了。静态代码块的原因。

public class BeanContainer {public static BeanContainer getInstance() {return ContainerHolder.HOLDER.instance;}private enum ContainerHolder {HOLDER;private BeanContainer instance;ContainerHolder() {instance = new BeanContainer();}}
}

转载于:https://www.cnblogs.com/voctrals/p/10628137.html

枚举方式的线程安全的单例相关推荐

  1. 面试官:不使用synchronized和lock,如何实现一个线程安全的单例?

    单例,大家肯定都不陌生,这是Java中很重要的一个设计模式.稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的,一般情况下,我们都会使用synchronized来保证线程安全. 那么,如果有这样 ...

  2. 面试官真是搞笑!让实现线程安全的单例,又不让使用synchronized!

    单例模式,是Java中比较常见的一个设计模式,也是我在面试时经常会问到的一个问题. 经过我的初步统计,基本上有60%左右的人可以说出2-4种单例的实现方式,有40%左右的人可以说出5-6种单例的实现方 ...

  3. 懵了,Java枚举单例模式比DCL和静态单例要好???

    点击关注公众号,实用技术文章及时了解 来源:liuchenyang0515.blog.csdn.net/article/ details/121049426 文章目录 双重校验锁单例(DCL) 为什么 ...

  4. java singleton 多线程_Java创建线程安全的单例singleton

    Java创建线程安全的单例 单例的使用场景 JVM中仅需要一个实例,因此能节省内存,加快访问速度,比如数据库连接池,计数器等.Spring 中的Bean,默认也是单例的,共享资源的访问,比如日志文件, ...

  5. 使用static代码块实现线程安全的单例设计模式

    实现线程安全的单例设计模式的三种方式: DCL双检查锁机制实现线程安全 使用静态内置类实现线程安全 使用static代码块实现线程安全 -------------------------------- ...

  6. 使用静态内置类实现线程安全的单例设计模式

    实现线程安全的单例设计模式的三种方式: DCL双检查锁机制实现线程安全 使用静态内置类实现线程安全 使用static代码块实现线程安全 -------------------------------- ...

  7. DCL双检查锁机制实现线程安全的单例设计模式

    实现线程安全的单例设计模式的三种方式: DCL双检查锁机制实现线程安全 使用静态内置类实现线程安全 使用static代码块实现线程安全 -------------------------------- ...

  8. python线程安全的单例_[python笔记] 单例的几种实现方式(线程安全)

    单例实现方式: 1.单例装饰器; 2.使用类: 3.使用元类 1.单例装饰器(非线程安全) 通过装饰器使一个类变成单例类,但是并非线程安全的,多线程状态下,每个线程创建不同的实例,因为没有加线程锁,所 ...

  9. java 线程安全的单例_线程安全的单例模式的几种实现

    单例模式是常见的设计模式之一:目的是节省内存,限制了实例的个数:有利于java GC回收机制. 单例模式的三个好处: 1.控制资源的使用,通过线程同步来控制资源的并发访问 2.控制实例的产生个数,来达 ...

最新文章

  1. win8.1配置java环境个人 win8.1
  2. 有限元ansys/lsdyna学习笔记-组件component与组元part_02
  3. w8服务器dns修改,Win8.1系统的DNS地址如何修改?修改win8.1系统DNS地址图文教程
  4. javaweb基础 02--javaweb基础概念
  5. matlab软件编程求解方程实验报告,数学实验“线性方程组高斯消去法”实验报告内含matlab程序.doc...
  6. ThreadPoolExecutor源码学习(一) -核心属性及应用
  7. 批量打印软件导入Excel时如何保留两位小数
  8. 数仓OLAP(一)--即席查询 Kylin
  9. 右键一直转圈圈(右键桌面和右键打开文件夹)的两种解决办法小总结
  10. 2018年手机ODM行业分析
  11. uv-pv-vv的区别
  12. anki填空题卡片模板
  13. vue打测试包和正式包的配置
  14. 魔众抽奖系统 v2.0.0 上线超级砸金蛋抽奖方式
  15. 纷享销客显示无法连接服务器,纷享销客
  16. Centos 8重启网卡命令
  17. 假如我国国民生产总值年增长率为7%,计算10年后我国国民生产总值与现在增长相比增长多少。
  18. 保险的第一性原理——新保险
  19. 【Envi】基于单窗算法的地表温度反演实验操作记录
  20. 数据库中间件mysql-proxy细节

热门文章

  1. ajax序列化表单,再也不用通过data去一个个的传值了
  2. Ubuntu下搭建NFS,并在开发板挂载
  3. Java 多线程之单例设计模式
  4. Redisbook学习笔记(3)数据类型之集合
  5. 我的思维模式的阿喀琉斯之踵
  6. Bochs调试加载符号文件的问题
  7. redhat6.5 yum register 问题
  8. 看图轻松理解数据结构与算法系列(合并排序)
  9. 2017年你会花钱在线听歌吗?
  10. Android Studio 使用笔记:查看类结构和继承关系