HelloWorld.class 资料的解读
HelloWorld.class 文件的解读这一篇主要针对最简单的HelloWorld的class文件进行分析,按照上一篇文章的结构
HelloWorld.class 文件的解读
这一篇主要针对最简单的HelloWorld的class文件进行分析,按照上一篇文章的结构去实例化的分析一个class文件。
下面是java源文件
?
?
sourceFile_attribute{ U2 attribute_name_index ; U4 attribute_length; U2 sourcefile_index;}
?
?(1)、下面的4个字节为attribute_length项,其值为0x00 00 00 02,它表示在该项后面还有2个字节的信息,这个长度永远为2。
? (2)、根据SourceFile_attribute表,最后的这两个字节是sourcefile_index项,该项的值是一个对CONSTANT_Utf8_info结构的常量池表项的索引,其信息表示的是该Class文件的源文件名称。在这里值为0x00 0E,第14号常量池表项存储的信息可解析为“HelloWorld.java”,这是该Class文件的源文件名称(不包括路径)。
到此整个 HelloWord.class 解析结束。。下一节。我们将通过几个例子说明怎么利用读懂的class文件的格式。