在常量池汇总存储了大量和CLass文件执行相关的信息,也是Class文件找那个第一个出现的表类型数据

常量池的第一位,是一个u2类型的数据,用两个字节表示常量池汇总有多少个常量, 但是这个常量表示的计数方式是从1开始的, 图片 转换为十进制的110

说明有109个常量,之所以不从0开始,是为了某些特殊情况,即为不引用任何的常量池数据

在常量池,主要放着

字面量 -> 可以直接编译的值,如文本字符串,final的常量值

图片

开头都是一个u1类型的标志位,说明其的类型

每一个都对应一个表类型结构

接下来就那一个最常见Utf-8的结构

图片

上面可以看出,一个标识位,一个长度,上面为u2类型的数据,也就是说如果一个Class文件定义了超过64KB的变量或者方法名,会无法解析

接下来就是直接上结构总表了

图片

图片

发表评论

邮箱地址不会被公开。 必填项已用*标注