This chapter provides tutorial notes and example codes on java.lang.ClassLoader class. Topics include JRE class loaders: Bootstrap, Extensions and System Class Loaders; using getSystemClassLoader().loadClass() to load classes explicitly; using 'verbose:class' option to see when and where classes are loaded.
Class loaders are part of JRE that loads Java classes into JVM.
There are 3 built-in class loaders: Bootstrap, Extensions, and System class loaders.
Bootstrap class loader loads system classes in JAR files from <JAVA_HOME>/lib folder.
Extensions class loader loads extensions classes in JAR files from <JAVA_HOME>/lib/ext folder.
System class loader loads application classes from "classpath" entries.
java.lang.ClassLoader is abstract class that represents class loaders in JVM.
Most of the time, classes are loaded into JVM implicitly on an on-demand basis.
Calling loadClass() method on a class loader loads the given class into JVM explicitly.
Calling getClassLoader() method on a loaded class returns its class loader.
ClassLoader.getSystemResource() method can be used to find the first location of a given class file, or any other file,
using the same file search logic used by class loaders.