CSNotesCSNotes
MySQL
Java
SSM
Redis
学习路线
TODO
实用工具
GitHub
MySQL
Java
SSM
Redis
学习路线
TODO
实用工具
GitHub
  • 第一章 Java 基础

    • 一、OOP 三大特性
    • 二、8 种基本数据类型
    • 三、BigDecimal
    • 四、类的访问权限
    • 五、包装类
    • 六、继承
    • 七、多态
    • 八、final 关键字
    • 九、static 关键字
    • 十、抽象类
    • 十一、接口
    • 十二、四种内部类
    • 十三、Lambda+ 函数式接口
    • 十四、枚举 enum
    • 十五、反射
    • 十六、注解
    • 十七、泛型
  • 第二章 集合

    • 一、集合框架总览
    • 二、ArrayList 源码解析
    • 三、LinkedList 源码分析
    • 四、HashSet
    • 五、String 底层结构
    • 六、String 常量池与 equals
    • 七、StringBuffer
    • 八、时间类:4 代演进史
    • 九、Stream 流
    • 十、工具类设计规范
    • 十一、Assert
    • 十二、常用工具类
  • 第三章 设计模式

    • 一、七大设计原则
    • 二、单例模式(饿汉式)
    • 三、装饰器模式
    • 四、策略模式
  • 第四章 异常

    • 一、Java 异常体系
    • 二、异常(完整版)
  • 第五章 并发

    • 一、多线程基础 JUC
    • 二、多线程进阶
    • 三、线程池
  • 第六章 JVM

    • 一、JSON 库
  • 第七章 RPC

    • 一、RPC 定义
  • 第八章 消息队列

    • 一、MQ 业务解耦
  • 第九章 JDK17 新特性

    • JDK17 新特性
    • 项目

十四、枚举 enum

public enum WeekDay {
    MONDAY("星期一"),
    TUESDAY("星期二"),
    WEDNESDAY("星期三");
    private final String description;

    WeekDay(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }
}

我们先看这个枚举,反编译后

public final class com.dto.WeekDay extends Enum<com.dto.WeekDay> {//枚举继承 Enum,所以不能再继承其他类
  public static final com.dto.WeekDay MONDAY;
  public static final com.dto.WeekDay TUESDAY;
  public static final com.dto.WeekDay WEDNESDAY;
  private final java.lang.String description;
  private static final com.dto.WeekDay[] $VALUES;
  public static com.dto.WeekDay[] values();
  public static com.dto.WeekDay valueOf(java.lang.String);//谨慎使用
  private com.dto.WeekDay(java.lang.String);//构造器默认是 private
  public java.lang.String getDescription();
  private static com.dto.WeekDay[] $values();
  static {};
}

一、编译后是 final class(不可被继承)

二、隐式 extends Enum< E>(不能再继承其他类)

三、构造器强制 private(外部不能 new)

四、实例必须显式声明是 public static final

五、实例集合在编译期固定 values() 可靠

因此不能加@Setter/@Data 这类破坏不可变性的注解

编辑此页
上次更新: 2026/9/26 19:31
Prev
十三、Lambda+ 函数式接口
Next
十五、反射