6:Java class文件
?一个class文件中只能包含一个类或者接口。
?
2.? Java class文件各项介绍
2.1. ?magic(魔数,class文件的前4个字节):OxCAFEBABE,分辨class文件的依据。
2.2. ?minor_version和major_version:主,次版本号。
2.3. ?constant_pool_count和constant_pool:常量池;其容纳 字面常量值, 符号引用(类和接口的全限定名, 字段名称和描述符,方法名称和描述符)
2.4. ?access_flags
2.5. ?this_class: 一个对常量池的索引。
2.6. ?super_class:在其位置的常量池入口是一个指向该类超类全限定名的CONSTANT_Class_info入口
2.7. ?interfaces_count和interfaces:只包含由该类直接实现或者接口声明继承的父接口
2.8. ?Fields_count和fields:只有在文件中由类或者接口声明了的字段才能在fields列表列出。
2.9. ?Methods_count和methods:只包括在该类或者接口中显示定义的方法
2.10.????Attributes_count和attributes:类或者接口所定义的属性的基本信息。
?
3.??????常量池
3.1. ?CONSTANT_Utf8_info:使用一种utf-8格式的变体存储一个常量字符串(4种基本类型信息: 文字字符串, 被定义的类和接口描述, 对类和接口的符号引用, 属性相关字符串)
3.2. ?CONSTANT_Integer_info:只存储常量int值,不存储符号引用
3.3. ?CONSTANT_Float_info:只存储常量float类型值,不存储符号引用
3.4. ?CONSTANT_Long_info:只存储long类型值
3.5. ?CONSTANT_Double_info:只存储double类型值
3.6. ?CONSTANT_Class_info:使用符号引用类表述类或者接口
3.7. ?CONSTANT_String_info:存储文字字符串值,不存储符号引用
3.8. ?CONSTANT_Fieldref_info:描述了指向字段的符号引用
3.9. ?CONSTANT_Methodref_info:使用符号引用来表述类中声明的方法(不包括接口中的方法)
3.10.? ?CONSTANT_InterfaceMethodref_info:使用符号引用接口中声明的方法
3.11.? ?CONSTANT_NameAndType_info:提供了所引用字段或者方法的简单名称和描述符的常量池入口
?