什么是双亲委派机制?
双亲委派机制
双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。
双亲委派模型工作工程:
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。
什么是双亲委派机制?相关推荐
- 简单的Java双亲委派机制
双亲委派机制 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象,而且加载某个类的class文件时,Java虚拟机采用的 ...
- 【JVM】类加载器:双亲委派机制、沙箱安全机制
· 双亲委派机制.沙箱安全机制是JVM中类加载器系统的相关术语 · 在这之前,应该先了解JVM类加载器系统的相关概念 一.类加载器基础知识 见下图1,java文件首先会被编译成class文件,clas ...
- 【Java 虚拟机原理】Android 类加载机制 ( 双亲委派机制 | BootClassLoader | PathClassLoader | DexClassLoader )
文章目录 一.Android 类加载机制 二.双亲委派机制 一.Android 类加载机制 Android 中的类加载 使用了 双亲委派 机制 , 如下图所示 : 在 Android 中提供了 333 ...
- JVM-白话聊一聊JVM类加载和双亲委派机制源码解析
文章目录 Java 执行代码的大致流程 类加载loadClass的步骤 类加载器和双亲委派机制 sun.misc.Launcher源码解析 Launcher实例化 Launcher 构造函数 双亲委派 ...
- Tomcat - 都说Tomcat违背了双亲委派机制,到底对不对?
文章目录 类加载的本质 JVM 双亲委派机制 BootstrapClassLoader(启动类加载器) ExtensionClassLoader AppClassLoader Tomcat的 类加载顺 ...
- 破坏双亲委派机制的那些事
前言 今天重读<深入理解Java虚拟>这本书,读到破坏双亲委派机制这一小节,其中有一段话,如下 双亲委派模型的第二次"被破坏"是由这个模型自身的缺陷所导致的,双亲委派很 ...
- java安全沙箱(一)之ClassLoader双亲委派机制
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...
- 什么是java双亲委派机制
什么是双亲委派机制 在介绍双亲委派模型之前先说下类加载器.对于任意一个类,都需要由加载它的类加载器和这个类本身统一确立在 JVM 中的唯一性,每一个类加载器,都有一个独立的类名称空间.类加载器就是根据 ...
- JVM学习笔记之-类加载子系统,类的加载与类的加载过程,双亲委派机制
一 类加载器与类加载过程 类加载子系统作用 类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识. ClassLoader只负责class文件的加载,至于 ...
- 类加载的双亲委派机制
类加载器的双亲委派机制 除了根类加载器之外,其他的类加载器都需要有自己的父加载器.从JDK1.2开始,类的加载过程采用双亲委派机制,这种机制能够很好的保护java程序的安全.除了虚拟机自带的根类加 ...
最新文章
- SpringMVC项目前台利用ajaxFileUpload传递图片后台接收
- [投资习惯对比]投资大师vs失败投资…
- Date类的构造方法以及成员方法220
- 【已解决】ffmpy3.FFExecutableNotFoundError: Executable ‘ffmpeg‘ not found
- python一键扣图,5行Python代码一键视频抠图
- python半自动化获取QQ空间说说
- flink-cdc(java案例)
- 台电tbook10s官方固件_【11月1日】台电官方系统固件更新
- 报名啦!第四届滴滴-IEEE未来精英论坛今夏来袭
- 2563: 阿狸和桃子的游戏
- echarts饼图中间默认内容显示与data数据显示切换
- CSS基础教程(下)
- SpringCloud版本Hoxton SR5 --- 第三讲:Ribbon 、Ribbon与Feign配合使用
- oracle sqlplus建用户,Oracle用SQL Plus创建数据库表空间和用户
- 光电耦合器如何选型以及型号推荐
- SAP中导出电子表格问题处理案例
- Linux mysql服务(重启,启动,停止)
- 计算机操作系统--网络操作系统和嵌入式操作系统
- 全球与中国汽车装饰和最终产品市场深度研究分析报告(2022)
- 计算机图形学学习(一) 直线Bresenham算法讲解及matlab实现
热门文章
- 用什么软件测试硬盘使用过多少次,硬盘能查看使用次数吗
- 微信公众平台开发测试账号配置URL失败的问题
- 如何用计算机玩扫雷,扫雷怎么玩_玩好扫雷游戏的技巧是什么【图文】-太平洋电脑网PConline-太平洋电脑网...
- texlive写论文源代码_使用Latex写论文
- Python:K折交叉验证,将数据集分成训练集与测试集
- 【泛微E-Mobile】管理员是否可以监控群聊
- python之json扩展
- Visual Studio Code 是啥?
- Java中如何打印出一个数组中所有元素呢?
- 实验2:MIPS指令系统和MIPS体系结构