What are the different phases of the class loading process?
How does the JVM resolve dependencies during class loading?
What is the Class.forName() method, and how does it work?
What is a custom ClassLoader, and when would you use it?
What is the difference between static and dynamic class loading?