当前位置: 首页 > ops >正文

JVM 双亲委派模型

双亲委派模型(类加载机制中,最常考的问题)

主要是有个好名字

类加载第一个环节中,根据类的全限定类名(包名+类名)找到对应的.class 文件的过程

相比之下,围绕着.class 文件的格式解析校验..这些环节更重要的

JVM 中进行类加载操作需要依赖内部的模块."类加载器(class loader)"

JVM 自带了三种类加载器

Bootstrap ClassLoader  负责在 Java 的标准库中进行查找

ExtensionClassLoader   负责在 Java 的扩展库中进行查找(JDK 自己带的,但是不是标准约定的库)

ApplicationClassLoader  负责在Java 的第三方库/项目中进行查找

这三个类加载器之间,存在"父子关系"(不是父类子类,继承关系)

每个类加载器中有一个 parent 这样的属性,保存了自己的父亲是谁

假设要加载一个类,java.lang.String

假设要加载一个,com.baidu.Test(自己项目中的类)

双亲委派模型的目的

为了确保三个类加载的优先级

标准库优先加载,第三方库/当前项目类最后加载

比如自己写一个类,和标准库恰好重复了,java.lang.String 此时 JVM 保证加载的仍然是标准库的 String 而不是自己写的

双亲委派模型也是可以打破的

程序员在特定场景下,也可以实现自己的类加载器,自己实现的类加载器可以让他遵守,也可以不遵守

http://www.xdnf.cn/news/8274.html

相关文章:

  • C++单例模式详解
  • 前端(小程序)学习笔记(CLASS 2):WXML模板语法与WXSS模板样式
  • 光电耦合器与数字容隔离器的“光速对话”
  • Java设计模式:探索编程背后的哲学
  • python定时删除指定索引
  • 谷歌浏览器调试python pygui程序
  • 国产化Word处理控件Spire.Doc教程:使用 Python 创建 Word 文档的详细指南
  • 企业级云原生爬虫架构与智能优化
  • LET 2025盛大开幕!数智工厂×智慧物流×机器人,一展get创新科技
  • VSCode 插件 GitLens 破解方法
  • 线程池介绍,分类,实现(工作原理,核心组成,拒绝策略),固态线程池的实现+详细解释(支持超时取消机制和不同的拒绝策略)
  • [性能优化] 数据库连接池(Connection Pooling)原理及其在Java/Python应用中的配置
  • 大模型高效微调方法综述:P-Tuning软提示与lora低秩微调附案例代码详解
  • 在 ABP VNext 中集成 OpenCvSharp:构建高可用图像灰度、压缩与格式转换服务
  • 自制操作系统day10叠加处理
  • 数据库系统概论(九)SQL连接查询语言超详细讲解(附带例题,表格详细讲解对比带你一步步掌握)
  • MCP 服务与 Agent 协同架构的理论基石:从分布式智能到生态化协作
  • OSI 深度安全防御体系架构深度剖析
  • Java转Go日记(五十六):gin 渲染
  • 可视化大屏实现全屏或非全屏
  • iOS使用Metal对采集视频进行渲染
  • 【YOLO】Docker搭建镜像+运行容器
  • 如何制作令人印象深刻的UI设计?
  • HTTP 协议详解
  • 全金属工业防爆散热风扇风压与散热效果的关系
  • 无人机飞行间隔安全智能评估、安全风险评估
  • 单片机——实现交通信号灯管理
  • 【mindspore系列】- 算子源码分析
  • 超越感官的实相:声、光、气味的科学与哲学探微
  • Azure 公有云基础架构与核心服务:从基础到实践指南