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

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

1.Class文件格式

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

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

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

 

2.常量池项目类型

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

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

 

3.类访问标志

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

 

4.字段表

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

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

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

 

5.方法表

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

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

6.属性表

6.1 Code

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

6.2 Exception

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

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

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

6.3 LocalVariableTable

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

6.4 SourceFile

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

6.5 ConstantValue

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

6.6 InnerClasses

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

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

6.7 Deprecated & Synthetic

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

6.8 StackMapTable

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

6.9 Signature

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

6.10 BootstrapMethods

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

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

 

 

 

 

原文地址:https://blog.****.net/m0_37701628/article/details/86684589