java类加载器

来源:互联网 发布:下颌第一磨牙雕刻数据 编辑:程序博客网 时间:2024/06/06 02:28

类加载器的代理模式

1、启动类加载器BootstrapClassLoader

2、扩展类加载器Extension ClassLoader

3、系统类加载器App ClassLoader

如果一个类加载器收到了一个类加载请求,它不会自己去尝试加载这个类,而是把这个请求转交给父类加载器去完成。每一个层次的类加载器都是如此。因此所有的类加载请求都应该传递到最顶层的启动类加载器中,只有到父类加载器反馈自己无法完成这个加载请求(在它的搜索范围没有找到这个类)时,子类加载器才会尝试自己去加载。委派的好处就是避免有些类被重复加载。

线程上下文加载器

java在设计的时候,将很多功能分割出去,以方便第三方为自己开发组件,这被成为服务提供者接口(SPI)。常见的SPI有jdbc,jndi,jaxp等。这些接口存储在java核心类库中。如 JAXP 的 SPI 接口定义包含在 javax.xml.parsers包中。而实现则是由程序员引入的jar包完成的。作为核心库的一部分,这些SPI的接口应该由系统引导类加载器(Bootstrap ClassLoader)完成加载,系统类加载器显然不能取外部jar包加载它门的实现,也不能代理给App ClassLoader,因为大小辈分乱了。

线程上下文类加载器是从jdk1.2开始引入的。通过java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoader(ClassLoader cl)方法进行设置的话,线程将继承其父线程的上下文类加载器。Java 应用运行的初始线程的上下文类加载器是系统类加载器App ClassLoader。在线程中运行的代码可以通过此类加载器来加载类和资源。

使用线程上下文类加载器,可以在执行线程中抛弃双亲委派加载链模式,使用线程上下文里的类加载器加载类。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝商家停止了怎么办 做淘宝不会美工怎么办 做客服打字慢怎么办 淘宝客服学不会怎么办 代购不给退货怎么办 淘宝不能发照片怎么办 兼职刷手被骗怎么办 淘宝店商品被降权怎么办 淘宝宝贝被降权了怎么办 淘宝违规降权怎么办 淘宝商品降权怎么办 公司不想要了怎么办 派派被客服禁言怎么办 淘宝收款不发货怎么办 新品标签没了怎么办 商家签收不退款怎么办 微信号存在风险怎么办 建网站不会管理怎么办 淘宝代销厂家发错货卖家怎么办 来分期退货退款怎么办 淘宝售后不退货怎么办 手机淘宝不退货怎么办 淘宝店不肯退款怎么办 退货快递丢件怎么办 淘宝客服不退款怎么办 淘宝被拉进黑名单怎么办 被买家举报假货怎么办 淘宝店售假3次怎么办 支付宝被骗200怎么办 淘宝被同行投诉怎么办 淘宝同行恶意投诉怎么办 淘宝被恶意举报怎么办 买到假的gucci包怎么办 淘宝买家退假货怎么办 淘宝产品被投诉怎么办 淘宝店铺被盗了怎么办 淘宝卖家不给解决问题怎么办 淘宝直通车亏钱怎么办 买家一直不评论怎么办 买家不主动评论怎么办 淘宝店主不发货怎么办