双亲委派模型

来源:互联网 发布:cn域名续费多少钱 编辑:程序博客网 时间:2024/05/01 04:08

类加载器用于实现类加载,但他远远不止这一个功能。对于任意一个类,都需要由加载他的类加载器和这个类本身一同确定其在java虚拟机中唯一性,每一个类加载器都有一个独立的类名称空间。

从java虚拟机的角度来讲,只有两种不同的 类加载器:一种是启动类加载器(bootstrap Classloader),这个类加载器由C++实现,是虚拟机自身的一部分,另外一种就是所有其他的类加载器,由java语言实现,独立于虚拟机外部。

而从程序员角度来看,类加载器又分为:启动类加载器、扩展类加载器、应用程序类加载器和自定义类加载器。双亲委派模型就是指这些类加载器的层次关系。

这里的类加载器之间的父子关系一般不会以继承 的关系来实现,而是都用组合关系来复用父类加载器的代码。


双亲委派模型的工作过程:

   如果一个类加载器收到了类加载的请求,他首先不会尝试自己去加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个请求(他的搜索范围没有找到所需的类)时,子加载器才会尝试自己去加载。


0 0
原创粉丝点击