阅读 36

枚举简单总结

枚举

使用静态常量的弊端

  • 安全性低,可接受枚举外的值
  • 可读性,尤其是打印日志时

  • 枚举的本质就是一个类(在编译时期转换成对应final类的形式,继承自java.lang.enum)
  • 底层实现线程安全
    • 反编译展示的枚举类型都是static类型的属性,在类被加载后被初始化,当一个Java类第一次被真正使用到的时候静态资源被初始化、Java类的加载和初始化过程都是线程安全的
public enum ColorEnum {
    RED,GREEN,YELLOW
}
复制代码

枚举是实现单例的最好方式

  • 写法简单
  • 可以防止反序列化重新创建对象
  • 线程安全
  • 唯一缺点: 枚举类的创建对象方式必须使用相应的方法,协同开发时,其他人并不一定知道
public enum Singleton {  
    INSTANCE;  
    public void whateverMethod() {  
    }  
}  
复制代码