读书人

六:Java class文件

发布时间: 2012-09-04 14:19:30 作者: rapoo

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:提供了所引用字段或者方法的简单名称和描述符的常量池入口

?

读书人网 >编程

热点推荐