1 ) bootstrap类加载器
负责加载$JAVA_HOME中的jre/lib/rt.jar中的所有class,并由c而不是ClassLoader子类实现
2 )扩展类加载器
负责加载java平台中的扩展功能的jar包,包括在$JAVA_HOME中由jre/lib/*.jar或-Djava.ext.dirs指定的目录中找到的jar包
3 ) app类加载器
负责描述在classpath中指定的jar包和目录中的class
4 )自定义类加载器
ClassLoader是由APP应用程序(如tomcat和jboss )定制的,用于根据j2ee规范实现自己的ClassLoader
加载过程中首先检查是否加载了类。 检查顺序为自下而上,从Custom ClassLoader到BootStrap ClassLoader进行分层检查。 如果加载了classloader,则会将类视为已加载,并确保所有classloader只加载一次。 加载顺序为自上而下,也就是从上层逐层尝试这样的加载。