什么是双亲委派机制?

简介: 什么是双亲委派机制?

双亲委派机制 Parent Delegation Model,又称为父级委托模型。想要了解它,还需理解类加载机制、类加载器、类加载器的层级关系。

类加载机制:编译器把Java源文件编译成.class文件,再由JVM装载.class文件到内存中,JVM装载完成后得到一个Class对象字节码。有了字节码对象,接下来就可以实例化使用了。
image.png

类的加载器主要有启动类加载器、附加类加载器、应用类加载器、用户自定义加载器。
image.png

启动类加载器,是用来加载jdk\jre\lib下的核心类库,比如rt.jar、resources.jar等。

扩展类加载器,是用来加载jdk\jre\lib\ext下的扩展类库中的jar包和.class文件。

应用类加载器,则用来加载classpath下的jar包和.class文件。还有自定义加载器,也属于应用类加载器。

image.png

双亲委派机制,是按照加载器的层级关系,逐层进行委派。

image.png

要加载一个类MyClass.class,从低层级到高层级一级一级委派,先由应用层加载器委派给扩展类加载器,再由扩展类委派给启动类加载器;启动类加载器载入失败,再由扩展类加载器载入,扩展类加载器载入失败,最后由应用类加载器载入,如果应用类加载器也找不到那就报ClassNotFound异常了。

双亲委派机制的优点:

1.保证安全性,层级关系代表优先级,也就是所有类的加载,优先给启动类加载器,这样就保证了核心类库类。

2.避免重复,如果父类加载器加载过了,子类加载器就没有必要再去加载了。

目录
相关文章
|
5月前
|
Java 数据库连接
什么是双亲委派?如何打破双亲委派?
什么是双亲委派?如何打破双亲委派?
133 0
|
5月前
|
存储 Java 编译器
类加载机制和双亲委派机制
类加载机制和双亲委派机制
|
2月前
|
前端开发 Java C++
双亲委派机制
这篇文章详细解释了Java中的双亲委派机制,包括其原理、类加载器的分类(启动类加载器、扩展类加载器、应用程序类加载器)以及它们之间的关系和作用。
|
5月前
|
Java
【JVM】双亲委派机制、打破双亲委派机制
【JVM】双亲委派机制、打破双亲委派机制
47 1
|
Java 关系型数据库 MySQL
双亲委派机制,懂吧~ 那什么情况下需要破坏它,知道吗?
双亲委派机制,懂吧~ 那什么情况下需要破坏它,知道吗?
88 0
|
12月前
|
Java 应用服务中间件 API
打破双亲委派机制
打破双亲委派机制
53 0
|
12月前
|
前端开发 安全 Java
双亲委派到底是个啥
双亲委派到底是个啥
34 0
|
前端开发 Java
05-说下类加载器和双亲委派机制
在明白了整个类从加载到初始化的过程,接下来我们有必要来说下类加载器的概念,因为实现上述过程是必须依靠加载器来实现的。
66 0
05-说下类加载器和双亲委派机制
|
前端开发 Java 容器
为什么破坏双亲委派机制?
为什么破坏双亲委派机制?
168 0
|
缓存 Java API
双亲委派机制是什么?
如果跟同事谈“双亲委派”,难免显得很八股了,但是这个“双亲委派”却是JVM在类加载环节必不可少的一个操作,充分的理解它,能够使我们更加良好的理解JVM在加载类的时候背后细节。不仅如此,在学习了解一些其他的技术,例如:SPI、OSGI等等,也能相辅相成,融会贯通,可谓“两仪生四象,四象生八卦”
207 1
双亲委派机制是什么?