什么是双亲委派机制,为什么要用到这个机制?

短命女 2024-03-23 19:02 122阅读 0赞

双亲委派机制(Parent Delegation Mechanism)是Java虚拟机(JVM)中的一种类加载机制。它的主要目的是解决类加载的冲突和重复加载的问题

在Java中,类加载器(ClassLoader)负责将类的字节码加载到内存中,并创建对应的Class对象。当一个类被加载时,JVM会按照一定的顺序去搜索类的定义。双亲委派机制就是基于这种搜索顺序来工作的。

具体来说,当一个类加载器收到加载类的请求时,它首先会将这个请求委派给它的父类加载器去处理。如果父类加载器能够找到并加载这个类,那么加载过程就结束了。如果父类加载器无法找到这个类,那么子类加载器才会尝试加载这个类。

这种双亲委派机制的好处在于可以避免类的重复加载和冲突。当一个类被加载后,它会被缓存起来,下次再次加载时可以直接使用缓存的结果,提高了加载的效率。另外,由于父类加载器优先加载类,所以可以保证类的一致性,避免了不同类加载器加载同一个类的问题。

双亲委派机制还有助于保护核心类库的安全性。JVM中有一个根类加载器(Bootstrap ClassLoader),它负责加载核心类库,如java.lang包下的类。由于根类加载器是由JVM实现的,无法通过Java代码直接访问,因此可以防止恶意代码替换核心类库。

总结

双亲委派机制是一种有效的类加载机制,它能够提高类加载的效率,避免类的重复加载和冲突,并保护核心类库的安全性。这也是为什么在Java中要使用双亲委派机制的原因。

发表评论

表情:
评论列表 (有 0 条评论,122人围观)

还没有评论,来说两句吧...

相关阅读

    相关 【JVM篇】什么双亲委派机制

    指的是:当一个类加载器接收到加载类的任务的时候,会向上查找是否加载过,再从上到下进行加载(因为要上下查找,不能确定是父亲还是母亲,所以是双亲)向上查找,向下加载。

    相关 双亲委派机制

    JVM提供了三种类加载器,分别为启动类加载器(Bootstrap Classloader)、扩展类加载器(Extention Classloader)和应用程序类加载器(App

    相关 双亲委派机制

    > 双亲委派机制 > JVM类加载器是有亲子层级结构的,如下图 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shado

    相关 双亲委派机制

    ![这里写图片描述][70] 上图中展示的类加载器之间的这种层次关系,称为类加载器的双亲委派模型。双亲委派模型除了顶层的启动类加载器之外,其余的类加载器都应当有自己的父类加

    相关 双亲委派机制

    一 点睛 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文