← Back to Chapters

Java Class Loader

? Java Class Loader

? Quick Overview

The Class Loader in Java is a part of the Java Runtime Environment (JRE) that dynamically loads Java classes into memory when they are required. It allows Java programs to run without knowing all classes at compile time.

? Key Concepts

  • Loads .class files into JVM memory
  • Follows a parent delegation model
  • Prevents duplicate class loading
  • Provides security and isolation

⚡ Interactive: Delegation Model

Click a button to see how Java searches for classes.

1. Bootstrap Loader
(Core Libs: rt.jar)
⬆ Delegates Up
2. Platform/Ext Loader
(Extensions)
⬆ Delegates Up
3. Application Loader
(Classpath)
Ready to load...

? Syntax / Theory

Java uses three main built-in class loaders:

  • Bootstrap Class Loader – Loads core Java classes
  • Extension Class Loader – Loads extension libraries
  • Application Class Loader – Loads user-defined classes

? Code Example

? View Code Example
// Demonstrating different Java Class Loaders
public class ClassLoaderDemo {

public static void main(String[] args) {

// Application Class Loader
ClassLoader appLoader = ClassLoaderDemo.class.getClassLoader();
System.out.println(appLoader);

// Extension Class Loader
System.out.println(appLoader.getParent());

// Bootstrap Class Loader (returns null)
System.out.println(appLoader.getParent().getParent());
}
}

? Live Output / Explanation

The output shows:

  • The application class loader instance
  • The extension class loader as its parent
  • null for bootstrap class loader (implemented in native code)

? Tips & Best Practices

  • Avoid loading the same class multiple times
  • Understand class loader hierarchy for debugging
  • Use custom class loaders carefully

? Try It Yourself

  • Create a custom class loader
  • Print class loader for core Java classes
  • Explore class loading in frameworks