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

JVM中类加载过程是什么?

引言

在Java程序运行过程中,类的加载是至关重要的环节,它直接关系到程序的执行效率和安全性。类加载不仅仅是简单地将.class文件读取到内存中,而是经历了加载、连接(包含验证、准备和解析)以及初始化等多个复杂步骤,最终将类的结构和行为完整地映射到JVM内存中。通过这一系列过程,JVM能够确保类的正确性、安全性和高效执行,同时支持动态加载和卸载功能。深入理解类加载的全过程,有助于开发者更好地掌握Java的运行机制,优化程序性能,并有效地诊断和解决类加载相关的问题。

类加载过程

加载:通过类的全限定名(包名+类名),获取该类的.class文件的二进制字节流。将二进制字节流所代表静态存储结构,转化为方法区运行时的数据结构。在内存中生成一个代表该类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。(这个阶段需要用到加载器,双亲委派模型与此有关。)

连接:验证、准备、解析3个阶段统称为连接。

验证:确保class文件中的字节流包含的信息,符合当前虚拟机的要求,保证被加载的class类的正确性。(毕竟class文件的产生途径不清楚,如果完全信任的话,很可能载入了有错误的字节码流导致系统崩溃)验证阶段大致会完成四个阶段的检验动作:文件格式校验、元数据验证、字节码验证、符号引用验证。

准备:为类中的静态字段分配内存,并设置默认的初始值,比如int类型初始值是0。被final修饰的static字段不会设置,因为final在编译的时候就分配了。

解析:这个阶段是虚拟机将常量池的符号引用直接替换为直接引用的过程。(符号引用是以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用的时候可以无歧义地定位到目标即可。直接引用可以是直接指向目标的指针、相对偏移量或是一个能间接定位到目标的句柄,直接引用是和虚拟机实现的内存布局相关的。如果有了直接引用,那引用的目标必定已经存在在内存中了。)

初始化:是类加载过程的最后一阶段。准备阶段时,静态变量已经赋过一次系统要求的初始零值,而在初始化阶段,则会根据代码编写的实际情况去初始化类变量和其它资源。简单来说就是执行类的构造器方法。

使用:使用类或者创建对象。

卸载:如果有下面的情况,类就会被卸载:1. 该类所有实例都已经被回收,也就是java堆中不存在该类的任何实例。2. 加载该类的ClassLoader已经被回收。3. 类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类。


感谢您的阅读!如果文章中有任何问题或不足之处,欢迎及时指出,您的反馈将帮助我不断改进与完善。期待与您共同探讨技术,共同进步!

相关文章:

  • node.js 实战——餐厅静态主页编写(express+node+ejs+bootstrap)
  • css识别\n换行
  • 安卓工程build.gradle中的Groovy的常见知识点
  • 【神经网络与深度学习】VAE 中的先验分布指的是什么
  • “胖都来”商标申请可以通过注册不!
  • Eclipse通过Tomcat启动web项目报错
  • 使用 AI 如何高效解析视频内容?生成思维导图或分时段概括总结
  • 基于 ISO 22301 与国产化实践的 BCM 系统菜单设计指南
  • 【疑难杂症2025-003】Java-mvn项目在gitlab-ci构建镜像时遇到的问题和解决方案
  • ✍️【TS类型体操进阶】挑战类型极限,成为类型魔法师![特殊字符]♂️✨
  • EDU/EDU.CN教育邮箱的申请(申请成功可以免费使用一年CursorPro)
  • 【漫话机器学习系列】245.权重衰减(Weight Decay)
  • CentOS 系统升级失败的原因与排查
  • 理解网站导航文件:robots.txt、sitemap.xml与LLMs.txt的全面解析
  • 大数据、物联网(IoT)、平台架构与设计重构大模型应用
  • 【Spring】Spring MVC笔记
  • 深入解析Http11AprProtocol:Tomcat高性能通信的底层原理
  • 快速上手 Docker:从入门到安装的简易指南(Mac、Windows、Ubuntu)
  • 【java】使用iText实现pdf文件增加水印功能
  • Postman最佳平替, API测试工具Bruno实用教程(一):基础篇
  • 中美经贸高层会谈将在午餐后继续
  • 印巴开始互袭军事目标,专家:冲突“螺旋式升级”后果或不可控
  • 河北邯郸一酒店婚宴发生火灾:众人惊险逃生,酒店未买保险
  • “拼好假”的年轻人,今年有哪些旅游新玩法?
  • 黑灰产工作室为境外诈骗集团养号引流,冒充美女与男性裸聊后敲诈勒索
  • 马上评丨全民定制公交,打开城市出行想象空间