枚举
使用静态常量的弊端java
- 安全性低,可接受枚举外的值
- 可读性,尤为是打印日志时
- 枚举的本质就是一个类(在编译时期转换成对应final类的形式,继承自java.lang.enum)
- 底层实现线程安全
- 反编译展现的枚举类型都是static类型的属性,在类被加载后被初始化,当一个Java类第一次被真正使用到的时候静态资源被初始化、Java类的加载和初始化过程都是线程安全的
public enum ColorEnum {
RED,GREEN,YELLOW
}
复制代码
枚举是实现单例的最好方式安全
- 写法简单
- 能够防止反序列化从新建立对象
- 线程安全
- 惟一缺点: 枚举类的建立对象方式必须使用相应的方法,协同开发时,其余人并不必定知道
public enum Singleton {
INSTANCE;
public void whateverMethod() {
}
}
复制代码