双亲委派模型
Posted 一个不会coding的girl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双亲委派模型相关的知识,希望对你有一定的参考价值。
- 双亲委派模型的概念
如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的加载器都是如此,因此所有的类请求都会传给顶层的启动类加载器(Bootstrap ClassLoader),只有当父加载器反馈自己无法完成该加载请求时,子加载器才会尝试自己去加载。
- 双亲委派模型机制图
- 加载类
启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将<Java_Runtime_Home>/lib下面的类库加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。
扩展(Extension)类加载器:它负责将<Java_Runtime_Home>/lib/ext或者由系统变量java.ext.dir指定位置中的类库加载到内存中。开发者可以直接使用扩展类加载器。
应用程序类加载器:负责加载用户类路径上所指定的类库。如果应用程序没有自定义过类加载器,一般它就是默认的类加载器。
- 如果加载同一个类,应该使用哪一个类?
父类
以上是关于双亲委派模型的主要内容,如果未能解决你的问题,请参考以下文章
Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?