In this post, we will learn the difference between "Class.forName()" and "ClassLoader.loadClass()"
in Java. This is a frequently asked question in Java interviews for beginners. Let's dive into it.
Difference between "Class.forName()" and "ClassLoader.loadClass()" in Java
Feature | Class.forName() | ClassLoader.loadClass() |
---|---|---|
Method Invocation | Static method invoked on the Class class. |
Method invoked on an instance of the ClassLoader class. |
Class Initialization | Class is initialized during method invocation. | Class is not initialized during method invocation. |
Exception Handling | Throws checked exception (ClassNotFoundException ). |
Requires explicit exception handling (ClassNotFoundException ). |
Class Loading Mechanism | Uses the default system class loader. | Allows you to specify a custom class loader. |
Recommended Usage | Used when you have the fully qualified class name as a string and want to load and initialize the class dynamically at runtime. | Used when you want more control over the class loading process or when using a custom class loader. |