Explain the concept of classloader in Java
๐ก Concept: Java Classloader
Classloader is a subsystem of JVM that loads classes dynamically into the Java runtime environment.
๐ Quick Intro
Classloaders enable dynamic loading, linking, and initialization of classes at runtime, supporting modularity and flexibility.
๐ง Analogy
Think of a classloader as a librarian fetching and organizing books (classes) only when needed rather than having all books upfront.
๐ง Technical Explanation
- Bootstrap Classloader loads core Java API classes (rt.jar).
- Extension Classloader loads JDK extensions.
- System/Application Classloader loads application classes from classpath.
- Supports hierarchical delegation model.
- Allows custom classloaders for advanced use cases.
๐ฏ Use Cases
- โ Loading classes at runtime without restarting JVM.
- โ Supporting modular applications and plugins.
- โ Enabling dynamic class reloading and hot deployment.
๐ป Example: Using ClassLoader to Load Class
public class CustomLoader {
public static void main(String[] args) throws Exception {
ClassLoader classLoader = CustomLoader.class.getClassLoader();
Class> clazz = classLoader.loadClass("java.lang.String");
System.out.println("Loaded class: " + clazz.getName());
}
}

โ Interview Q&A
Q1: What is a classloader?
A: JVM component that loads classes dynamically.
Q2: What types of classloaders are there?
A: Bootstrap, Extension, System.
Q3: What is the delegation model?
A: Classloaders delegate loading to parent classloader first.
Q4: Can you create a custom classloader?
A: Yes, by extending ClassLoader.
Q5: What does bootstrap classloader load?
A: Core Java classes.
Q6: Why is classloader important?
A: Enables dynamic and modular applications.
Q7: Can classes be unloaded?
A: Only when classloader is garbage collected.
Q8: How to get classloader of a class?
A: Using Class.getClassLoader() method.
Q9: What is system classloader?
A: Loads application classes from classpath.
Q10: Can classloaders be chained?
A: Yes, parent delegation model.
๐ MCQs
Q1. What is a classloader in Java?
- A memory manager
- JVM component that loads classes dynamically
- A compiler
- A debugger
Q2. Which classloader loads core Java classes?
- System Classloader
- Extension Classloader
- Bootstrap Classloader
- Custom Classloader
Q3. What is the delegation model?
- Child classloader loads first
- Parent classloader first tries to load class
- Random loading
- None
Q4. Can you create custom classloader?
- No
- Yes
- Sometimes
- Never
Q5. What does system classloader load?
- Core classes
- Application classes
- Extension classes
- Native code
Q6. Why are classloaders important?
- For debugging
- Support dynamic and modular apps
- For memory
- For performance only
Q7. Can classes be unloaded?
- Always
- Never
- Only when classloader is GCed
- Sometimes
Q8. How to get classloader of a class?
- Class.getClassLoader()
- ClassLoader.get()
- Class.load()
- ClassLoader.find()
Q9. What is system classloader?
- Loads core classes
- Loads app classes from classpath
- Loads extension classes
- Loads native code
Q10. Can classloaders be chained?
- No
- Yes
- Sometimes
- Never
๐ก Bonus Insight
Classloaders are a key feature enabling Java's dynamic, modular, and flexible runtime environment.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!