This document 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.
What Is java.lang.ClassLoader Class?
Accessing the ClassLoader of a Class
loadClass() Method - Loading Classes Explicitly
Conclusions:
- 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.