The ClassLoader Object
Is responsible for locating and loading the binary definition of a type.
Each object has associated a ClassLoader and a Class instance.
On startup the JVM creates a “system” ClassLoader and loads the first class.
Applications can introduce their own subclasses of ClassLoader that implement the locating and loading of types.