一、BootStrap ClassLoader
这是JVM的根ClassLoader,它是用C++实现的,JVM启动时初始化此ClassLoader,并由此ClassLoader完成%JAVA_HOME%中jre/lib/rt.jar(Sun JDK的实现)中所有class文件的加载,这个jar中包含了java规范定义的所有接口以及实现。
二、Extension ClassLoader
JVM用此ClassLoader来加载扩展功能的一些jar包。
三、System ClassLoader
JVM用此ClassLoader来加载启动参数中指定的CLASSPATH中的jar包以及目录,在Sun JDK中ClassLoader对应的类名为AppClassLoader。
四、User-Defined ClassLoader
是Java开发人员继承ClassLoader抽象类自行实现的ClassLoader,基于自定义的ClassLoader用于加载非CLASSPATH中的jar以及目录。