cp_info constant_pool[constant_pool_count-1];是一种表结构,cp_info表示的是常量池对象。cp_info数据结构:
cp_info {u1 tag;u1 info[];}
u1 tag;表示的是常量池中的存储类型,常量池中的tag说明:
| 常量池类型 | Tag | 章节 |
|---|---|---|
| CONSTANT_Utf8 | 1 | §4.4.7 |
| CONSTANT_Integer | 3 | §4.4.4 |
| CONSTANT_Float | 4 | §4.4.4 |
| CONSTANT_Long | 5 | §4.4.5 |
| CONSTANT_Double | 6 | §4.4.5 |
| CONSTANT_Class | 7 | §4.4.1 |
| CONSTANT_String | 8 | §4.4.3 |
| CONSTANT_Fieldref | 9 | §4.4.2 |
| CONSTANT_Methodref | 10 | §4.4.2 |
| CONSTANT_InterfaceMethodref | 11 | §4.4.2 |
| CONSTANT_NameAndType | 12 | §4.4.6 |
| CONSTANT_MethodHandle | 15 | §4.4.8 |
| CONSTANT_MethodType | 16 | §4.4.9 |
| CONSTANT_Dynamic | 17 | §4.4.10 |
| CONSTANT_InvokeDynamic | 18 | §4.4.10 |
| CONSTANT_Module | 19 | §4.4.11 |
|---|---|---|
| CONSTANT_Package | 20 | §4.4.12 |
每一种tag都对应了不同的数据结构,上述表格中标记了不同类型的tag值以及对应的JVM规范章节。
