What is difference between java.lang .Class and java.lang.ClassLoader? What is the hierarchy of ClassLoader ?

Class ‘java.lang.Class’ represent classes and interfaces in a running Java application. JVM construct ‘Class’ object when class in loaded. Where as a ClassLoader is also a class which loads the class files into memory in order for the Java programs to execute properly. The hierarchy of ClassLoaders is:

Bootstrap ClassLoaders

Extensive ClassLoaders

System Classpath ClassLoaders

Application ClassLoaders