JVM Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 4.10

ClassLoader Class - Class Loaders

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.

What Is Class Loader?

What Is java.lang.ClassLoader Class?

Accessing the ClassLoader of a Class

JVM "-verbose:class" Option

loadClass() Method - Loading Classes Explicitly

getSystemResource() Method - Finding Files

Class Loading Problem - JAR Hell

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.

Table of Contents

 About This Book

 Download and Install Java SE 1.6 Update 2

 java.lang.Runtime Class - The JVM Instance

 java.lang.System Class - The Operating System

ClassLoader Class - Class Loaders

 Class Class - Class Reflections

 Sun's JVM - Java HotSpot VM

 JRockit JVM 7.0 by BEA Systems

 JRockit JVM 8.0 by BEA Systems

 Memory Management Rules and Tests

 Garbage Collection Tests

 Stack Overflow Tests

 Thread Testing Program and Result

 StringBuffer Testing Program and Result

 CDS (Class Data Sharing)

 Micro Benchmark Runner and JVM Options

 Micro Benchmark Tests on "int" Operations

 Micro Benchmark Tests on "long" Operations

 Micro Benchmark Tests in JIT Compilation Mode

 Micro Benchmark Tests on "float" and "double" Operations

 References

 PDF Printing Version

Dr. Herong Yang, updated in 2010
ClassLoader Class - Class Loaders