常见的class文件格式如下图所示,下面我将对一下格式一一作出解释。
一、magic
该部分主要是对语言类型的规范,只有magic这个部分是CAFEBABE时才能被检测为Java语言,否则则不是。
二、minor version和major version
minor version主要表示了小的版本号,major version表示了大的版本号。
三、constant_pool_count和对应的引用
constant_pool_count表示了常量池中引用的数量,而后面紧跟着的就是常量池。
四、access flags
access flags表示了访问修饰符。
五、this_class和super _class
this_class指明了现在的这个类,而super_class指明了其父类。
六、interface count 和interfaces
interface count是实现接口的计数,interfaces是具体接口的引用。
七、filds_count和fields
filds_count是成员个数,fields是各个成员的具体信息。
八、methods_count和method_info
methods_count是方法个数,method_info是各个方法的具体信息。
九、attribute_count和attribute
attribute_count是方法个数,attribute是各个方法的具体信息。