枚举方式的线程安全的单例
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
枚举方式的线程安全的单例相关推荐
- 面试官:不使用synchronized和lock,如何实现一个线程安全的单例?
单例,大家肯定都不陌生,这是Java中很重要的一个设计模式.稍微了解一点单例的朋友也都知道实现单例是要考虑并发问题的,一般情况下,我们都会使用synchronized来保证线程安全. 那么,如果有这样 ...
- 面试官真是搞笑!让实现线程安全的单例,又不让使用synchronized!
单例模式,是Java中比较常见的一个设计模式,也是我在面试时经常会问到的一个问题. 经过我的初步统计,基本上有60%左右的人可以说出2-4种单例的实现方式,有40%左右的人可以说出5-6种单例的实现方 ...
- 懵了,Java枚举单例模式比DCL和静态单例要好???
点击关注公众号,实用技术文章及时了解 来源:liuchenyang0515.blog.csdn.net/article/ details/121049426 文章目录 双重校验锁单例(DCL) 为什么 ...
- java singleton 多线程_Java创建线程安全的单例singleton
Java创建线程安全的单例 单例的使用场景 JVM中仅需要一个实例,因此能节省内存,加快访问速度,比如数据库连接池,计数器等.Spring 中的Bean,默认也是单例的,共享资源的访问,比如日志文件, ...
- 使用static代码块实现线程安全的单例设计模式
实现线程安全的单例设计模式的三种方式: DCL双检查锁机制实现线程安全 使用静态内置类实现线程安全 使用static代码块实现线程安全 -------------------------------- ...
- 使用静态内置类实现线程安全的单例设计模式
实现线程安全的单例设计模式的三种方式: DCL双检查锁机制实现线程安全 使用静态内置类实现线程安全 使用static代码块实现线程安全 -------------------------------- ...
- DCL双检查锁机制实现线程安全的单例设计模式
实现线程安全的单例设计模式的三种方式: DCL双检查锁机制实现线程安全 使用静态内置类实现线程安全 使用static代码块实现线程安全 -------------------------------- ...
- python线程安全的单例_[python笔记] 单例的几种实现方式(线程安全)
单例实现方式: 1.单例装饰器; 2.使用类: 3.使用元类 1.单例装饰器(非线程安全) 通过装饰器使一个类变成单例类,但是并非线程安全的,多线程状态下,每个线程创建不同的实例,因为没有加线程锁,所 ...
- java 线程安全的单例_线程安全的单例模式的几种实现
单例模式是常见的设计模式之一:目的是节省内存,限制了实例的个数:有利于java GC回收机制. 单例模式的三个好处: 1.控制资源的使用,通过线程同步来控制资源的并发访问 2.控制实例的产生个数,来达 ...
最新文章
- win8.1配置java环境个人 win8.1
- 有限元ansys/lsdyna学习笔记-组件component与组元part_02
- w8服务器dns修改,Win8.1系统的DNS地址如何修改?修改win8.1系统DNS地址图文教程
- javaweb基础 02--javaweb基础概念
- matlab软件编程求解方程实验报告,数学实验“线性方程组高斯消去法”实验报告内含matlab程序.doc...
- ThreadPoolExecutor源码学习(一) -核心属性及应用
- 批量打印软件导入Excel时如何保留两位小数
- 数仓OLAP(一)--即席查询 Kylin
- 右键一直转圈圈(右键桌面和右键打开文件夹)的两种解决办法小总结
- 2018年手机ODM行业分析
- uv-pv-vv的区别
- anki填空题卡片模板
- vue打测试包和正式包的配置
- 魔众抽奖系统 v2.0.0 上线超级砸金蛋抽奖方式
- 纷享销客显示无法连接服务器,纷享销客
- Centos 8重启网卡命令
- 假如我国国民生产总值年增长率为7%,计算10年后我国国民生产总值与现在增长相比增长多少。
- 保险的第一性原理——新保险
- 【Envi】基于单窗算法的地表温度反演实验操作记录
- 数据库中间件mysql-proxy细节