在Java中,an
enum是成熟的类:
Java编程语言的枚举类型比其他语言的枚举类型更强大。枚举声明定义了一个类(称为枚举类型)。枚举类主体可以包括方法和其他字段。
为了查看每个文件的实际大小
enum,让我们做一个实际
enum的
class文件并检查它创建的文件的内容。
假设我们有以下
Constants枚举类:
public enum Constants { ONE, TWO, THREE;}编译以上内容
enum并反汇编生成的
class文件,结果
javap如下:
Compiled from "Constants.java"public final class Constants extends java.lang.Enum{ public static final Constants ONE; public static final Constants TWO; public static final Constants THREE; public static Constants[] values(); public static Constants valueOf(java.lang.String); static {};}反汇编表明an的每个字段
enum都是
Constants
enum该类的实例。(使用进行进一步分析
javap将发现,通过
newConstants(String)在静态初始化块中调用构造函数来创建新对象来初始化每个字段。)
因此,我们可以说
enum我们创建的每个字段至少与在JVM中创建对象的开销一样多。



