ConstantValue属性的作用是通知虚拟机自动为静态变量赋值,只有被static修饰的变量才可以使用这项属性,在Java中对非static属性的赋值是在构造器中完成的,而对于类变量,则有两种方法可以选择,在类构造器赋值,或者在ConstantValue属性赋值。
7)InnerClasses属性该属性用于记录内部类与宿主类之间的关联。如果一个类中定义了内部类,那么编译器将会为它及它所包含的内部类生成InnerClasses属性。
8)Deprecated属性和Synthetic属性该属性用于表示某个类、字段和方法,已经被程序作者定为不再推荐使用,它可以通过在代码中使用@Deprecated注释进行设置。
9)Synthetic属性该属性代表此字段或方法并不是Java源代码直接生成的,而是由编译器自行添加的,如this字段和实例构造器、类构造器等。
参考资料: 《深入理解Java虚拟机-JVM高级特性与最佳实践》 -周志明