双亲委派机制

  双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。

双亲委派模型工作工程:

  1.当Application ClassLoader 收到一个类加载请求时,他首先不会自己去尝试加载这个类,而是将这个请求委派给父类加载器Extension ClassLoader去完成。

  2.当Extension ClassLoader收到一个类加载请求时,他首先也不会自己去尝试加载这个类,而是将请求委派给父类加载器Bootstrap ClassLoader去完成。

  3.如果Bootstrap ClassLoader加载失败(在<JAVA_HOME>\lib中未找到所需类),就会让Extension ClassLoader尝试加载。

  4.如果Extension ClassLoader也加载失败,就会使用Application ClassLoader加载。

  5.如果Application ClassLoader也加载失败,就会使用自定义加载器去尝试加载。

  6.如果均加载失败,就会抛出ClassNotFoundException异常。

例子:

  当一个Hello.class这样的文件要被加载时。不考虑我们自定义类加载器,首先会在AppClassLoader中检查是否加载过,如果有那就无需再加载了。如果没有,那么会拿到父加载器,然后调用父加载器的loadClass方法。父类中同理会先检查自己是否已经加载过,如果没有再往上。注意这个过程,直到到达Bootstrap classLoader之前,都是没有哪个加载器自己选择加载的。如果父加载器无法加载,会下沉到子加载器去加载,一直到最底层,如果没有任何加载器能加载,就会抛出ClassNotFoundException。

什么是双亲委派机制?相关推荐

  1. 简单的Java双亲委派机制

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

  2. 【JVM】类加载器:双亲委派机制、沙箱安全机制

    · 双亲委派机制.沙箱安全机制是JVM中类加载器系统的相关术语 · 在这之前,应该先了解JVM类加载器系统的相关概念 一.类加载器基础知识 见下图1,java文件首先会被编译成class文件,clas ...

  3. 【Java 虚拟机原理】Android 类加载机制 ( 双亲委派机制 | BootClassLoader | PathClassLoader | DexClassLoader )

    文章目录 一.Android 类加载机制 二.双亲委派机制 一.Android 类加载机制 Android 中的类加载 使用了 双亲委派 机制 , 如下图所示 : 在 Android 中提供了 333 ...

  4. JVM-白话聊一聊JVM类加载和双亲委派机制源码解析

    文章目录 Java 执行代码的大致流程 类加载loadClass的步骤 类加载器和双亲委派机制 sun.misc.Launcher源码解析 Launcher实例化 Launcher 构造函数 双亲委派 ...

  5. Tomcat - 都说Tomcat违背了双亲委派机制,到底对不对?

    文章目录 类加载的本质 JVM 双亲委派机制 BootstrapClassLoader(启动类加载器) ExtensionClassLoader AppClassLoader Tomcat的 类加载顺 ...

  6. 破坏双亲委派机制的那些事

    前言 今天重读<深入理解Java虚拟>这本书,读到破坏双亲委派机制这一小节,其中有一段话,如下 双亲委派模型的第二次"被破坏"是由这个模型自身的缺陷所导致的,双亲委派很 ...

  7. java安全沙箱(一)之ClassLoader双亲委派机制

    java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...

  8. 什么是java双亲委派机制

    什么是双亲委派机制 在介绍双亲委派模型之前先说下类加载器.对于任意一个类,都需要由加载它的类加载器和这个类本身统一确立在 JVM 中的唯一性,每一个类加载器,都有一个独立的类名称空间.类加载器就是根据 ...

  9. JVM学习笔记之-类加载子系统,类的加载与类的加载过程,双亲委派机制

    一 类加载器与类加载过程 类加载子系统作用 类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识. ClassLoader只负责class文件的加载,至于 ...

  10. 类加载的双亲委派机制

    类加载器的双亲委派机制 ​ 除了根类加载器之外,其他的类加载器都需要有自己的父加载器.从JDK1.2开始,类的加载过程采用双亲委派机制,这种机制能够很好的保护java程序的安全.除了虚拟机自带的根类加 ...

最新文章

  1. SpringMVC项目前台利用ajaxFileUpload传递图片后台接收
  2. [投资习惯对比]投资大师vs失败投资…
  3. Date类的构造方法以及成员方法220
  4. 【已解决】ffmpy3.FFExecutableNotFoundError: Executable ‘ffmpeg‘ not found
  5. python一键扣图,5行Python代码一键视频抠图
  6. python半自动化获取QQ空间说说
  7. flink-cdc(java案例)
  8. 台电tbook10s官方固件_【11月1日】台电官方系统固件更新
  9. 报名啦!第四届滴滴-IEEE未来精英论坛今夏来袭
  10. 2563: 阿狸和桃子的游戏
  11. echarts饼图中间默认内容显示与data数据显示切换
  12. CSS基础教程(下)
  13. SpringCloud版本Hoxton SR5 --- 第三讲:Ribbon 、Ribbon与Feign配合使用
  14. oracle sqlplus建用户,Oracle用SQL Plus创建数据库表空间和用户
  15. 光电耦合器如何选型以及型号推荐
  16. SAP中导出电子表格问题处理案例
  17. Linux mysql服务(重启,启动,停止)
  18. 计算机操作系统--网络操作系统和嵌入式操作系统
  19. 全球与中国汽车装饰和最终产品市场深度研究分析报告(2022)
  20. 计算机图形学学习(一) 直线Bresenham算法讲解及matlab实现

热门文章

  1. 用什么软件测试硬盘使用过多少次,硬盘能查看使用次数吗
  2. 微信公众平台开发测试账号配置URL失败的问题
  3. 如何用计算机玩扫雷,扫雷怎么玩_玩好扫雷游戏的技巧是什么【图文】-太平洋电脑网PConline-太平洋电脑网...
  4. texlive写论文源代码_使用Latex写论文
  5. Python:K折交叉验证,将数据集分成训练集与测试集
  6. 【泛微E-Mobile】管理员是否可以监控群聊
  7. python之json扩展
  8. Visual Studio Code 是啥?
  9. Java中如何打印出一个数组中所有元素呢?
  10. 实验2:MIPS指令系统和MIPS体系结构