《深入理解JVM:JVM高级特性与最佳实践》–Class类文件的结构
什么是Class文件?
Class文件是java虚拟机执行引擎的数据入口,也是java技术体系的基础构成之一。
Class文件结构
①魔数:确定该文件是为一个能被虚拟机接受的Class文件。
②版本号:存储Class文件的版本号
③常量池:Class文件之中的资源仓库
④访问标志位:识别一些类或接口层次的访问信息
⑤类索引、父类索引、接口索引:确定Class文件中类的继承关系
⑥字段表集合:用于描述接口或类中声明的字段
⑦方法表集合
⑧属性表集合
常量池中的数据类型
字面量:主要存放文本字符串和声明为final的常量
符号引用:主要包括类和接口的全限定名、字段的名称和描述符、方法的名称和描述符
字段表包含什么信息
字段的作用域(public,private,protected,缺省)、是实例变量还是类变量(static修饰符)、可变性(final)、并发可见性(volatile修饰符:是否强制从主内存中读写)、可否被序列化(transient)、字段数据类型、字段名称。