这是tomcat加载器结构:
Bootstrap
|
System
|
Common
/ \
Webapp1 Webapp2 ...
我的问题是装载机实际上是如何工作的?
即使没有请求,他们是否在启动tomcat时加载所有类?
或者他们在请求进来时加载必要的类?
加载类的生命周期怎么样?
答案 0 :(得分:1)
他们在tomcat时加载所有类吗? 即使没有,也会开始 请求?
答案可能是。使用的策略取决于您的JVM实现。通常,只有在需要时才会加载类。
或者当他们加载必要的类时 请求进来?
这又取决于你的JVM的类加载器策略。一般来说,虽然只在需要时才加载类。例如,如果请求1不需要类Foo但请求2不需要,那么该类将仅在请求2期间加载。
那个生命周期怎么样? 加载类?
类的实例遵循正常的垃圾收集规则,因此在不再引用它们时会删除它们。至于班级本身,我并不完全确定。我想它们遵循类似的模式,即如果没有类的实例,JVM需要更多的内存,它就会卸载类。