This part describes the backgrounds of the Java virtual machine needed to understand how to compile to a Java class file. It describes how the JVM is structured internally, how a class file is structured, what the instruction set of the JVM is and how field and method descriptors are structured.