This post is a note taken during reading 4.2 and 4.3 sections of chapter 4.
Section 4.2 describes the rules of representing class and interface names, field and method names, module and package names.
Section 4.3 describes descriptors and provides a short grammar according to which a representation of a type is constructed.
Names
Binary class and interface names
- those names always appear in a fully qualified form known as binary name (see JLS 13.1)
- they are represented with forward slash instead of a dot (for historical reasons)
- represented as
CONSTANT_Utf8_info structures
- referenced from
CONSTANT_NameAndType_info and from CONSTANT_Class_info structures
Field and method names
Unqualified names are used to strore: