Java Class文件格式、常量池项目的类型、表的结构

* u1、u2、u4分别代表1字节、2字节、4字节

目录

1.Class文件格式

2.常量池项目类型

3.类访问标志

4.字段表

5.方法表

6.属性表


 

1.Class文件格式

magic:魔数,值为0xcafe baby,表示这是一个可以被虚拟机接收的class文件。很多文件存储标准都使用魔数进行身份识别,比如gif,jpeg。使用魔数而不是文件后缀名的是因为后缀名可以随意改动,使用魔数比较安全。

major_version:主版本号,52对应JDK1.8

 Java Class文件格式、常量池项目的类型、表的结构_第1张图片

 

2.常量池项目类型

Java Class文件格式、常量池项目的类型、表的结构_第2张图片

Java Class文件格式、常量池项目的类型、表的结构_第3张图片

 

3.类访问标志

Java Class文件格式、常量池项目的类型、表的结构_第4张图片

 

4.字段表

Java Class文件格式、常量池项目的类型、表的结构_第5张图片

Java Class文件格式、常量池项目的类型、表的结构_第6张图片

Java Class文件格式、常量池项目的类型、表的结构_第7张图片

 

5.方法表

Java Class文件格式、常量池项目的类型、表的结构_第8张图片

Java Class文件格式、常量池项目的类型、表的结构_第9张图片

6.属性表

6.1 Code

Java Class文件格式、常量池项目的类型、表的结构_第10张图片

6.2 Exception

exception_index_table 是一个指向常量池中CONSTANT_Class_info的引用,表示该异常的类型

Java Class文件格式、常量池项目的类型、表的结构_第11张图片

6.3 LocalVariableTable

Java Class文件格式、常量池项目的类型、表的结构_第12张图片

6.4 SourceFile

Java Class文件格式、常量池项目的类型、表的结构_第13张图片

6.5 ConstantValue

Java Class文件格式、常量池项目的类型、表的结构_第14张图片

6.6 InnerClasses

Java Class文件格式、常量池项目的类型、表的结构_第15张图片

Java Class文件格式、常量池项目的类型、表的结构_第16张图片

6.7 Deprecated & Synthetic

6.8 StackMapTable

Java Class文件格式、常量池项目的类型、表的结构_第17张图片

6.9 Signature

Java Class文件格式、常量池项目的类型、表的结构_第18张图片

6.10 BootstrapMethods

Java Class文件格式、常量池项目的类型、表的结构_第19张图片

上文所有截图均来自《深入理解Java虚拟机》

 

 

 

 

你可能感兴趣的:(JVM)