版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33907408/article/details/85211420
https://blog.csdn.net/zhangcanyan/article/details/78993959
双亲委派模型:Parents Delegation Model
作用:解决了各个类加载器的基础类统一的问题
模型的流程:一个classLoader收到类加载的请求,不会直接加载,而是将请求委派给父类加载器完成,逐级往上。只有当上层知道无法完成工作的时候,才会调用儿子。
破坏
第一次破坏
java.lang.ClassLoader在jdk1.0的时候就已经存在,双亲模型引入是jdk1.2
java.lang.ClassLoader中新增findClass(protected)方法,可以写入自己的类加载逻辑;1.0的时候是继承然后重写loadClass方法,现在是loadClass加载失败会调用findLClass方法。
第二次破坏?
需要调用classpath下面的接口类,进行加载,但是类加载器不认识
设计增添一个线程上下文加载器(Thread context classloader),可以从父进程那里继承或者自己设置。
这种情况,父亲加载器请求子类街在其进行完成
第三次破坏??
用户程序追求动态性,如OSGi,将树状结构变成了网状结构