jvm类加载器双亲委派模式

以下纯属个人理解,各位看管自行判断:
在java中,有三个基本的类加载类型:
1. BootStrap ClassLoader,该加载器是以c++编写的一个二进制字节码的文件,存在与jre的lib包中的rt.jar中,在jvm启动的时候,就会去加载该类
2. Extension ClassLoader,简称Ext,扩展类加载器,相当于java中的最底层类加载器,负责加载java.ext.dirs参数(默认值是%JAVA_HOME%\jre\lib\ext,可由VM参数-Djava.ext.dirs指定)指定路径中的所有类库
3. AppClassLoader,应用加载器,该类加载器由sun.misc.Launcher类的静态内部类AppClassLoader实现

在所有的类加载器中,每个加载器都有一个默认的父类属性(parent),在加载类的时候,java会自动根据该属性查找parent的,一层一层往上查找,直到查找到Ext加载器。
第二步就是再从ext中查询是否有符合需要的类加载器,再一层一层的往下查找。直到查到需要的类加载器,就终止搜索。

以下是比较标准的解释:
如果一个类加载器收到了加载类的请求,它首先不会自己去尝试加载这个类,而是把这个请求委托给上级类加载器去完成,每一个层次的类加载器都是如此,所有加载器的加载请求最终都应该传送至最顶层的类加载器中(扩展类加载器),只有当上级类加载器反馈自己无法完成这个加载请求(它的类加载范围中没有找到所需的类)时,下级类加载器才会去尝试自己加载这个类,这便是类加载器的上级委托机制

引用连接:http://blog.csdn.net/a19881029/article/details/17247165

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值