Tomcat是处理多任务的,也就是一个Tomcat中可以部署多个应用,每个应用都存在很多类,并且各个应用中的类是独立的,而且有可能全类名也都是相同的。
一个Tomcat ,不管内部部署了多少个应用,Tomcat启动之后就是一个Java进程了,也就是同一个JVM,所以如果Tomcat中只存在一个类加载器,这就是有问题的。而Tomcat为部署的每个应用都生成一个类加载器去加载自己的类,就达到了应用之间隔离的目的,不会出现冲突。
简单理解其实就是一个Tomcat的两个应用的全类名完全一样,但是如果有两个完全不同的类加载器去加载了这两个类名完全一样的类,是没有问题的,是可以正常加载到方法区里面的。
Tomcat还利用自定义加载器实现了热加载功能。