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

JVM-JAVA编译到执行全过程

源码文件(.java)到代码执行的全过程:

该过程主要分为四个阶段,“编译-》加载-》解释-》执行”。

在编译阶段需要将源码文件(.java)通过语法分析、语义分析、注解处理后得到class文件;

在加载阶段则是先校验class的信息,然后为其在堆中分配内存空间并给类中的变量赋上默认初始值,将符号引用转为直接引用,其实也就是“验证-》准备-》解析”的过程;

在解释阶段则是先找到这个类的字节吗信息,然后将其转换为操作系统可以识别的指令,在这个过程中会有两个解释器,一个是字节码解释器还有一个就是即时解释器(JIT),JVM会判断该字节码是不是热点代码(也就是使用频率很高的代码),对于热点代码就会使用JIT将其指令码保存起来,在下次用的时候直接使用,提高执行效率;

最后的执行阶段就是调用硬件去具体执行了。

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

相关文章:

  • SQL Server性能分析利器:SET STATISTICS TIME ON 详解与实战案例
  • Unity导出WebGL,无法显示中文
  • 在 Vue.js 中,使用 proxy.$refs.waybillNumberRef.focus() 获取焦点不生效
  • 实验5:Vuex状态管理
  • 学习C2CRS Ⅴ (Conversational Recommender System)
  • 30天学习Java第六天——super关键字
  • MySQL实现全量同步和增量同步到SQL Server或其他关系型库
  • vue3计算当前日期往前推一个月的日期,当前日期往前推7天
  • JVAV面试-静态代理动态代理
  • 大模型知识蒸馏:技术演进与未来展望
  • 借助vite来优化前端性能
  • 2025年Postman的五大替代工具
  • Linux生成自签名证书
  • ThreadLocal底层原理,内存泄露问题,以及如何在项目中使用这个关键字(总结)
  • 互功率谱 cpsd
  • HTTP 失败重试(重发)方案
  • 【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐
  • 使用 OpenAI 的 Node.js 通过 Ollama 在本地运行 DeepSeek R1
  • 使用C++与DeepSeek API构建智能应用
  • 【平台优化】大数据集群一个客户端参数引起的任务性能差的问题
  • 运维面试题(六)
  • Vue学习笔记集--异步更新
  • 启发式搜索:A*算法《人工智能案例与实验》
  • ActiveMQ
  • Java XML与JSON相互转换详解
  • Docker Compose
  • git tag以及git
  • 视频翻译器免费哪个好?轻松玩转视频直播翻译
  • JavaScript如何判断一个变量是否为数组的多种方法及原理,除Array.isArray()外还有哪些方式?
  • 鸿蒙保姆级教学