This chapter looks at what happens when binary type data is imported into a Java virtual machine. The Java virtual machine makes types available to the running program through a process of loading , linking , and initialization . Loading is the process of bringing a binary form for a type into the Java virtual machine. Linking is the process of incorporating the binary type data into the runtime state of the virtual machine. Verification ensures the type is properly formed and fit for use by the Java virtual machine.
Preparation involves allocating memory needed by the type, such as memory for any class variables.
Resolution is the process of transforming symbolic references in the constant pool into direct references. Implementations may delay the resolution step until each symbolic reference is actually used by the running program. During initialization, the class variables are given their proper initial values. See Figure 7-1 for a graphical depiction of this process. The beginning of a type's lifetime.