Constant pool tags
Constant Type | Value |
---|---|
CONSTANT_Class |
7 |
CONSTANT_Fieldref |
9 |
CONSTANT_Methodref |
10 |
CONSTANT_InterfaceMethodref |
11 |
CONSTANT_String |
8 |
CONSTANT_Integer |
3 |
CONSTANT_Float |
4 |
CONSTANT_Long |
5 |
CONSTANT_Double |
6 |
CONSTANT_NameAndType |
12 |
CONSTANT_Utf8 |
1 |
CONSTANT_MethodHandle |
15 |
CONSTANT_MethodType |
16 |
CONSTANT_InvokeDynamic |
18 |
CONSTANT_Class_info
The tag
item has the value CONSTANT_Class
(7)
CONSTANT_Class_info {
u1 tag;
u2 name_index;
}
The CONSTANT_Fieldref_info
, CONSTANT_Methodref_info
, and CONSTANT_InterfaceMethodref_info
Structures
tag
The tag
item of a CONSTANT_Fieldref_info
structure has the value CONSTANT_Fieldref
(9).
The tag
item of a CONSTANT_Methodref_info
structure has the value CONSTANT_Methodref
(10).
The tag
item of a CONSTANT_InterfaceMethodref_info
structure has the value CONSTANT_InterfaceMethodref
(11).
CONSTANT_Fieldref_info {
u1 tag;
u2 class_index;
u2 name_and_type_index;
}
CONSTANT_Methodref_info {
u1 tag;
u2 class_index;
u2 name_and_type_index;
}
CONSTANT_InterfaceMethodref_info {
u1 tag;
u2 class_index;
u2 name_and_type_index;
}
The CONSTANT_String_info
Structure
The tag
item of the CONSTANT_String_info
structure has the value CONSTANT_String
(8).
CONSTANT_String_info {
u1 tag;
u2 string_index;
}
The CONSTANT_Integer_info
and CONSTANT_Float_info
Structures
The tag
item of the CONSTANT_Integer_info
structure has the value CONSTANT_Integer
(3).
The tag
item of the CONSTANT_Float_info
structure has the value CONSTANT_Float
(4).
CONSTANT_Integer_info {
u1 tag;
u4 bytes;
}
CONSTANT_Float_info {
u1 tag;
u4 bytes;
}
The CONSTANT_Long_info
and CONSTANT_Double_info
Structures
The tag
item of the CONSTANT_Long_info
structure has the value CONSTANT_Long
(5).
The tag
item of the CONSTANT_Double_info
structure has the value CONSTANT_Double
(6).
CONSTANT_Long_info {
u1 tag;
u4 high_bytes;
u4 low_bytes;
}
CONSTANT_Double_info {
u1 tag;
u4 high_bytes;
u4 low_bytes;
}
The CONSTANT_NameAndType_info
Structure
The tag
item of the CONSTANT_NameAndType_info
structure has the value CONSTANT_NameAndType
(12).
CONSTANT_NameAndType_info {
u1 tag;
u2 name_index;
u2 descriptor_index;
}
The CONSTANT_Utf8_info
Structure
The tag
item of the CONSTANT_Utf8_info
structure has the value CONSTANT_Utf8
(1).
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
The CONSTANT_MethodHandle_info
Structure
The tag
item of the CONSTANT_MethodHandle_info
structure has the value CONSTANT_MethodHandle
(15).
CONSTANT_MethodHandle_info {
u1 tag;
u1 reference_kind;
u2 reference_index;
}
The CONSTANT_MethodType_info
Structure
The tag
item of the CONSTANT_MethodType_info
structure has the value CONSTANT_MethodType
(16).
CONSTANT_MethodType_info {
u1 tag;
u2 descriptor_index;
}
The CONSTANT_InvokeDynamic_info
Structure
The tag
item of the CONSTANT_InvokeDynamic_info
structure has the value CONSTANT_InvokeDynamic
(18).
CONSTANT_InvokeDynamic_info {
u1 tag;
u2 bootstrap_method_attr_index;
u2 name_and_type_index;
}
来源
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.4