当前位置:网站首页>JVM有哪些类加载机制?
JVM有哪些类加载机制?
2022-07-01 21:47:00 【詹Sir(开源字节)】
JVM类加载机制有哪些?
1、全盘负责,当一个类加载器负责加载某个Class时,该Class所依赖的和引用的其他Class也将由该类加载器负责载入,除非显示使用另外一个类加载器来载入
2、父类委托,先让父类加载器试图加载该类,只有在父类加载器无法加载该类时才尝试从自己的类路径中加载该类
3、缓存机制,缓存机制将会保证所有加载过的Class都会被缓存,当程序中需要使用某个Class时,类加载器先从缓存区寻找该Class,只有缓存区不存在,系统才会读取该类对应的二进制数据,并将其转换成Class对象,存入缓存区。这就是为什么修改了Class后,必须重启JVM,程序的修改才会生效
4、双亲委派机制, 如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当父加载器在它的搜索范围中没有找到所需的类时,即无法完成该加载,子加载器才会尝试自己去加载该类。
双亲委派机制过程?
1、当AppClassLoader加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委派给父类加载器ExtClassLoader去完成。
2、当ExtClassLoader加载一个class时,它首先也不会自己去尝试加载这个类,而是把类加载请求委派给BootStrapClassLoader去完成。
3、如果BootStrapClassLoader加载失败(例如在$JAVA_HOME/jre/lib里未查找到该class),会使用ExtClassLoader来尝试加载;
4、若ExtClassLoader也加载失败,则会使用AppClassLoader来加载,如果AppClassLoader也加载失败,则会报出异常ClassNotFoundException。
如若转载,请注明出处:开源字节 https://sourcebyte.cn/article/174.html
边栏推荐
- PHP reflective XSS, reflective XSS test and repair
- 使用闭包实现点击按钮切换 toggle
- 从零开始学 MySQL —数据库和数据表操作
- Several ways of writing main function in C
- 业务可视化-让你的流程图'Run'起来
- spark analyze命令使用及其作用 map join broadcast join 广播join
- Communication between browser tab pages
- Use of vscode
- LC501. 二叉搜索树中的众数
- [live broadcast review] the first 8 live broadcasts of battle code Pioneer have come to a perfect end. Please look forward to the next one!
猜你喜欢
Spark interview questions
企业架构与项目管理的关联和区别
Sonic云真机学习总结6 - 1.4.1服务端、agent端部署
Sonic cloud real machine learning summary 6 - 1.4.1 server and agent deployment
ICML2022 | 基于元语义正则化的介入性对比学习
并发编程系列之FutureTask源码学习笔记
EasyExcel 复杂数据导出
【MySQL】explain的基本使用以及各列的作用
对象内存布局
Introduction and download of the latest version of airserver2022
随机推荐
【juc学习之路第8天】Condition
MQ learning notes
MySQL的视图练习题
keras训练的H5模型转tflite
Spark interview questions
【生态伙伴】鲲鹏系统工程师培训
灵动微 MM32 多路ADC-DMA配置
What is the difference between PMP and NPDP?
What is the difference between consonants and Initials? (difference between initials and consonants)
详解Kubernetes网络模型
Make a three digit number of all daffodils "recommended collection"
[STM32] stm32cubemx tutorial II - basic use (new projects light up LED lights)
为什么数字化转型战略必须包括持续测试?
【MySQL】数据库优化方法
Matlab traverses images, string arrays and other basic operations
MySQL series transaction log redo log learning notes
PHP reflective XSS, reflective XSS test and repair
从零开始学 MySQL —数据库和数据表操作
基于三维GIS的不动产管理应用
函数基本学习之一