I was looking into how the Java bytecode worked, and I started on Wikipedia. On the page focusing on the .class
file, it mentions 11 constant types that appear in the Constant Pool. However, in The Java Virtual Machine Specifications (JVMS) it mentions 3 more:
- CONSTANT_MethodHandle
- CONSTANT_MethodType
- CONSTANT_InvokeDynamic
The 11 mentioned on the Wikipedia page seem fairly self-explanatory, and I understand their purpose and use. However, I'm confused by the 3 extra described in the JVMS. What are they, and for what are they used?