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​