Java双亲委派模型

三个类加载器:
Bootstrap ClassLoader(启动类加载器):是其他类加载器的起点
Extension ClassLoader(扩展类加载器):父加载器是Bootstrap ClassLoader
Application ClassLoader(应用程序类加载器):
1.父加载器是Extension ClassLoader
2.我们系统的类加载器和默认的线程上下文类加载器

AppClassLoader中找到需要的缓存则直接返回已加载的类,没找到则查找(向上委派)ExtClassLoader里面的缓存,
ExtClassLoader里面找到则返回已加载的类,没找到则查找(向上委派)BootstrapClassLoader里面的缓存,
BootstrapClassLoader里面找到则返回已加载的类,
没找到就查找BootstrapClassLoader的加载路径,有则返回,
无则向下查找ExtClassLoader的加载路径,有则返回,
无则向下查找AppClassLoader的加载路径,有则返回,
此时还没有则抛出 ClassNotFoundException 异常。这个异常表示类加载器无法找到指定名称的类。

双亲委派即向上委派到顶层加载器,向下查找到发起加载的加载器为止。

在自定义的类加载器中,如果存在缓存并且缓存中已经加载了所请求的类,那么类加载器可以直接从缓存中返回已加载的类,而无需重新加载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值