JVM中包括集中類加載器:
1 BootStrapClassLoader 引導類加載器
2 ExtClassLoader 擴展類加載器
3 AppClassLoader 應用類加載器
4 CustomClassLoader 用戶自定義類加載器
在Tomcat中類的加載稍有不同,如下圖:
1 Bootstrap 引導類加載器
加載JVM啓動所需的類,以及標準擴展類(位於jre/lib/ext下)
2 System 系統類加載器
加載tomcat啓動的類,比如bootstrap.jar,通常在catalina.bat或者catalina.sh中指定。位於CATALINA_HOME/bin下。
3 Common 通用類加載器
加載tomcat使用以及應用通用的一些類,位於CATALINA_HOME/lib下,比如servlet-api.jar
4 webapp 應用類加載器
每個應用在部署後,都會創建一個唯一的類加載器。該類加載器會加載位於 WEB-INF/lib下的jar文件中的class 和 WEB-INF/classes下的class文件。