JAVA双亲委派机制的意义:
沙箱安全机制:防止JAVA核心类库被篡改
避免类的重复加载:保证被加载类的唯一性
WebappsClassLoader加载流程
loadClass方法
1.先在Tomcat缓存中查找是否已加载该类,已加载则返回。
2.再次查看JAVA系统类加载器是否加载过该类,已加载则返回。
3.尝试让ExtClassLoader去加载(ExtClassLoader会触发BootStrapClassLoader类加载),加载成功则返回。
4.在本地 Web 应用目录下查找并加载,加载成功则返回。
5.由AppClassLoader加载,加载成功则返回 。
6.抛出 ClassNotFound 异常。
findClass 方法
1. 先在Web 应用本地目录下查找要加载的类,找到即返回。
2. 交给父加载器(AppClassLoader)去查找,找到即返回。
3. 抛出 ClassNotFound 异常。