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

类加载的过程以及双亲委派模型

目录

(一)类加载的过程

(1)加载

(2)验证

(3)准备

(4)解析

(5)初始化

(二)类加载出现在什么时候

(三)双亲委派模型

(1)类加载器

(2)流程

(3)目的


(一)类加载的过程

(1)加载

  1. 根据代码中编写的“全限定类名”,找到.class文件。

  2. 打开文件,读取文件内容到内存中。

  3. 数据格式的解析(Java虚拟机规范 规定了 .class 文件的结构)。

(2)验证

校验读取内容是否合法。

(3)准备

给 类对象 分配“未初始化”内存空间。

(4)解析

对代码中的 常量 加载。

(5)初始化

  1. 类的 静态成员/静态代码块,进行加载。

  2. 父类/要实现的接口,进行加载。

(二)类加载出现在什么时候

一个类直到第一次用到,JVM才加载。

  • 构造某个类的实例。

  • 使用类的静态方法,使用类的静态成员。

  • 使用类的子类。

(三)双亲委派模型

根据 全限定类名 找到对应的 .class 文件的过程。

(1)类加载器

  • Bootstrap ClassLoader:在Java标准库中查找。

  • Extension ClassLoader:在Java扩展库中查找。

  • Application ClassLoader:在 Java第三方库/当前项目 中查找。

(2)流程

(3)目的

确保先加载标准库,再加载扩展库,最后加载第三方库。

http://www.dtcms.com/a/390933.html

相关文章:

  • 将 RabbitMQ 与 .NET Core Web API 和 Worker Services 结合使用
  • 面试编程题(三)
  • SSD性能优化之4K对齐
  • dolphindb vscode更改连接配置的操作步骤
  • 船用配电盘在线绝缘监测故障定位系统
  • 爬虫逆向--Day22Day23--核心实战案例【四川农机购置与补贴信息】【Webpack国密SM3、SM4】
  • 计算机网络————第二章 物理层
  • uniapp usb调试鸿蒙一直连接不上。
  • MySQL独立表空间:优缺点与最佳实践
  • 直播预告 | P4 One正式发布:让创新协作更简单、更安全、更可靠
  • Zookeeper脑裂是什么原因导致的?
  • APK360加固与“脱壳”:移动应用安全的攻与防
  • langchain-routerchain
  • 第四章:VSCode编辑器使用介绍
  • Problem: lab-week3- exercise03 Selection sort
  • Vue 事件总线 主流的一些npm包推荐
  • 总线协议如何支持总线错误条件?
  • N-156基于springboot,vue小区物业管理系统
  • 物理心理学 (Psychophysics) - 阈值 (Threshold) 测量方法 - 人因工程笔记2
  • 从 “数据采集” 到 “性能跃迁”:Simcenter LMS 如何用振动噪声试验,激活高端装备核心竞争力?
  • 【STL vector的全面指南】基础操作与底层实现<1>
  • 微服务-基础知识(CAP、BASE)
  • 存储卷清理策略在vps环境磁盘空间维护的操作指南
  • Day46 ARM硬件体系 从计算机架构、处理器类型、指令集到内核寄存器与SoC总线结构
  • 【MySQL】从视图到用户和权限管理
  • 栈与队列:核心差异与应用场景
  • 【Hadoop】ZooKeeper:分布式系统的协调核心与一致性保障
  • AWS 全球机房延迟对比 区域选型经验分享
  • 免费插件分享 |Scene Switcher Pro
  • Vue前端开发工具有哪些?常用Vue开发工具推荐、Vue前端开发工具对比与最佳实践分享