深入理解双亲委派机制 旧城等待, 2024-03-22 16:53 88阅读 0赞 #### 一、双亲委派机制委派流程 #### **双亲委派机制,就是JVM虚拟机加载类的时候,会优先委派上级类加载器进行类加载。** 1、如果上级类加载器**能找到**这个类,那就由上级类加载器加载,并且对下级**共享,反之不共享。** 2、如果上级类加载器**找不到**这个类,那才由下级类加载器加载该类 3、如果下级类加载器也没有找到这个类,就会报错**ClassNotFound**。 ![e16796330a5c42dcaebe94e8fc425f2a.png][] #### 二、双亲委派机制的优势 #### **1、避免类的重复加载**当自己程序中定义了一个和Java.lang包同名的类,此时,由于使用的是双亲委派机制,会由**启动类加载器**去加载**JAVA\_HOME/lib(java核心类库)**中的类,而不是加载用户自定义的类。此时,程序可以正常编译,但是自己定义的类无法被加载运行。 **2、保护程序安全,防止核心API被随意篡改**。通过委托方式,不会去篡改核心.class,即使篡改也不会去加载,即使加载也不会是同一个.class对象了。不同的加载器加载同一个.class也不是同一个Class对象。这样保证了Class执行安全。 例如:**自定义**了一个java.lang.String的类,首先会由**系统类加载器加载**,系统类加载器识别到这个类不属于我加载,因为是JVM系统级别的类,此时应用程序加载器不会加载,会向上委托,直到启动类加载器,启动类加载器识别到这个类属于我来加载,就会去JAVA\_HOME下去加载相同包名的String类。加载完成后,即使再有相同包名类名的String类也不会去加载,因为相同包名的类已经被加载过了,就会造成即使开发人员定义了和JVM级别相同包的类也不会去加载自己定义的类,保证了系统级别的类加载安全性,防止核心API被随意篡改。 **3、**让上级类加载器中的类对下级**共享(反之不行)**,即能让你的类能依赖到 **jdk 提供的核心类**。 **4、类加载有次序**,**保证核心类优先加载**。 #### 三、四种类加载器分别加载哪些类? #### ![513df87ed36a4b1484faccf7b34f57d1.png][] [e16796330a5c42dcaebe94e8fc425f2a.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/15f70933e816438cb9b5ab140f1e0132.png [513df87ed36a4b1484faccf7b34f57d1.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/22/38cab667ad8345aa9d55ea75e820fd1b.png
相关 深入理解双亲委派机制 一、双亲委派机制委派流程 双亲委派机制,就是JVM虚拟机加载类的时候,会优先委派上级类加载器进行类加载。 1、如果上级类加载器能找到这个类,那就由上级类加载器加载,并且 旧城等待,/ 2024年03月22日 16:53/ 0 赞/ 89 阅读
相关 双亲委派机制 什么是双亲委派机制? JVM加载字节码文件是按需加载,只有用到该类时才会加载字节码文件到内存中生成Class的对象,加载字节码文件采用的是双亲委派机制。 工作原理 绝地灬酷狼/ 2024年03月16日 23:38/ 0 赞/ 126 阅读
相关 双亲委派机制 Java虚拟机对Class文件采用的是按需加载的方式,也就是说当需要使用该类时,才会加载该类的对象到内存当中生成class对象。而且加载某个类的class文件时,Java虚拟机 川长思鸟来/ 2023年07月01日 14:54/ 0 赞/ 41 阅读
相关 JVM - 彻底理解打破双亲委派机制 文章目录 Pre 双亲委派 何为打破双亲委派 如何打破双亲委派 演示 重写 ClassLoader\loadClass 青旅半醒/ 2023年02月17日 03:41/ 0 赞/ 66 阅读
相关 双亲委派机制 JVM提供了三种类加载器,分别为启动类加载器(Bootstrap Classloader)、扩展类加载器(Extention Classloader)和应用程序类加载器(App 末蓝、/ 2022年11月15日 03:56/ 0 赞/ 286 阅读
相关 双亲委派机制 > 双亲委派机制 > JVM类加载器是有亲子层级结构的,如下图 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shado 清疚/ 2022年09月08日 06:19/ 0 赞/ 228 阅读
相关 双亲委派机制总结 预定义类加载器和双亲委派机制 1. JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 怼烎@/ 2022年07月28日 00:12/ 0 赞/ 223 阅读
相关 双亲委派机制 ![这里写图片描述][70] 上图中展示的类加载器之间的这种层次关系,称为类加载器的双亲委派模型。双亲委派模型除了顶层的启动类加载器之外,其余的类加载器都应当有自己的父类加 水深无声/ 2022年05月16日 02:53/ 0 赞/ 321 阅读
相关 双亲委派机制 [为什么80%的码农都做不了架构师?>>> ][80_] ![hot3.png][] 1、当AppClassLoader加载一个class时,它首先不会自己去尝试加载这个类 我不是女神ヾ/ 2022年01月15日 07:29/ 0 赞/ 322 阅读
相关 双亲委派机制 一 点睛 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文 小灰灰/ 2021年07月24日 15:49/ 0 赞/ 528 阅读
还没有评论,来说两句吧...