Java的类加载机制以及tomcat类加载对比

标题java类加载过程

标题加载 ->验证 ->准备 -> 解析 ->初始化

加载:将class文件解析成二进制文件进入jvm中
验证:校验文件是否符合java规范,是否会侵害jvm
准备:为类的静态变量赋值默认初始值(如:int赋0),final修饰的变量直接赋值
解析:符号引用(任何形式的字面量,可以定位到目标)解析为直接引用(指针)
初始化:为类静态变量赋正确的初始值。

类加载器:分为:启动类加载器(c++编写),扩展类加载器(加载jre的中的jar包的类),应用类加载器
双亲委派机制:保证了不会重复加载统一类;

什么时候需要打破双亲委派机制:

tomcat默认不是使用的双亲委派机制,一个应用程序对应的一个应用类加载器。为的是防止不同应用的不同版本的类库冲突。

tomcat 的类加载是这样的:
在这里插入图片描述

1.启动类加载器:主要负责加载 java.home 下的 lib 目录下的类库或者被 -Xbootclasspath 参数指定的路径中的类库。应用程序不能直接使用该加载器。
2.系统类加载器:加载tomcat启动的类,比如bootstrap.jar,通常在catalina.bat或者catalina.sh中指定。位于CATALINA_HOME/bin下。
3.通用类加载器:加载tomcat使用以及应用通用的一些类,位于CATALINA_HOME/lib下
4.应用类加载器:每个应用对应唯一一个应用类加载器,加载位于WEB-INF下的classes文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值