ClassLoader Hierarchy

1.首先classloader是一种tree-like的hierarchy的结构,这颗树的root是bootstrap classloader。当JVM启动后,系统往往会有三个或三个以上的Class Loader,也即:Bootstrap CL, Extension CL, System CL和User-defined CL。任何的CL都有一个parent CL(Bootstrap CL除外),从而所有的CL形成一颗自上而下的树,其中Bootstrap CL是这颗树的Root。
Bootstrap CL
└──Extension CL
└──System CL
└──User-defined CL.(classLoaderA)
└──User-defined CL.(classLoaderB)
2.Bootstrap CL负责载入core Java API class;Extension CL负责载入系统所安装的扩展Java函数库;System CL负责载入Classpath下的class。
3.Class的载入采用的是Delegation的模式,即:当系统向一个CL请求载入某一个class的时候,该CL把请求delegate给他的parent,如果parent返回相应的class,则CL返回parent所返回的class,如果parent返回null的话,则CL自己负责载入请求的class。(weblogic的classloader architecture有一个开关,当你disable那个开关的时候,child CL将不会delegate class-loading到他的parent,这是一个例外)
4.拿你说的那种情况来说,当client向classloaderB请求载入A的时候,classloaderB将会delegate这个请求给classloaderA,既然classloaderA可以返回A,那么classloaderB将会直接返回这个A给client。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值