自己理解的类加载机制——双亲委派(父委派)

首先借助网上的两张图:

第一张图我们先了解下他的架构,

自己理解的类加载机制——双亲委派(父委派)_第1张图片
然后第二张图,我们通过路径,就能更实际的体会到他们在实际工作中的作用了。

自己理解的类加载机制——双亲委派(父委派)_第2张图片

1、可以看到系统自带的三个加载器,前面两层的都是jdk安装完成后自带的路径。也就是一些最基本的类其实jdk就已经写好了,就是那些基本的类库,不需要用户自己去改,也防止被改。

2、再来看第三层的$CLASSPATH,这不是我们web项目开发中最常见的了吗?项目搭建的时候,需要配置环境,我们项目中依赖的jar包就得先在classpath下build出来。

3、最深层的也就是最外层的就是用户自定义的加载器了,用来处理一些个性化的客制开发的。

所以JVM加载类的时候,从最深层检查,逐层查找,找到了即返回,没找到则继续向上委派,即父委派模型。直到最根部bootstrap class loader都没找到,则会报出ClassNotFoundException了。

你可能感兴趣的:(java基础,双亲委派,类加载)