类加载器&双亲委派机制&打破双亲委派机制

类加载器

Bootstrap ClassLoader(根类加载器):加载lib/rt.jar 等核心类,由C++实现
Extension ClassLoader(扩展类加载器):加载扩展jar包 在jre/lib/ext/中
App ClassLoader(应用程序加载器):加载classpath指定的内容
Custom ClassLoader(自定义加载器)

双亲委派机制

从自定义加载器开始向上找缓存,有缓存用缓存,没缓存到根加载器再向下一层一层找,上层有就直接用上层的.类似递归.

好处(优点):
主要是为了安全(保证核心API不被篡改),其次为了怕重复加载导致的浪费

怎么打破双亲委派机制

  1. SPI Service Provider InterFace 服务提供接口
    通过ThreadContextClassLoader(线程上下文加载器)破坏了双亲委派加载机制;
  2. OSGI tomcat 热部署
    为了实现不同应用依赖不同版本使用同一个类名的问题,需要加载多个相同的、不同版本的类。会优先加载Web应用自己定义的类,通过WebAPPClassLoader加载本身目录下的class文件,加载不到再给CommonClassLoader加载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值