news 2026/4/25 6:04:24

你能谈一下JVM的主要组成部分吗?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
你能谈一下JVM的主要组成部分吗?

JDK的JRE的区别作为一个Java开发,我相信每个人都知道。但是很多人却不知道JRE是Java虚拟机的实现。它可以分析字节码、解释代码然后执行它。我们作为开发人员,了解JVM的体系结构非常重要。它可以指导我们去写出性能良好的代码。能够很好的去分析性能问题。接下来带领大家来学习JVM的体系结构和它的组成部分。

我们看上面的体系图,里面的东西虽然有点多看起来很累,我们先别去看细节,我们就先关注三个最外围的部分:

  • ClassLoader子系统
  • 运行时数据区
  • 执行引擎

类加载器

当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析、运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制。JVM 虚拟机执行 class 字节码的过程可以分为七个阶段:加载、验证、准备、解析、初始化、使用、卸载。

运行时数据区

「运行时数据区」也可以叫做是「虚拟机内存结构」我们通常叫的比较多的还是JVM虚拟机内存结构。它指 JVM 运行时会把它管理的内存划分成若干个不同的数据区域 ,简单的说就是不同的数据放在不同的地方。共分为五个部分:方法区、堆、虚拟机栈、程序计数器、本地方法栈。

虚拟机栈程序计数器是线程私有的,而方法区是线程共享的区域。

执行引擎

我们最终代码是要运行的,这部分工作就是由执行引擎来完成。它会把分配给运行时数据区的字节码交给执行引擎来执行。执行引擎则会读取字节码并一段一段的执行它。

Java是一门半解释半编译型语言,所以执行引擎又分为了解释器JIT编译器,解释器就是当Java虚拟机启动时根据预定义的规范把字节码翻译成对应的机器码逐行去解释执行。而JIT编译器是虚拟机将源代码直接编译成机器码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 13:59:43

Kotlin编程语言入门与常见问题

麻烦点赞: https://t.csdn.cn/ThlhE 谢谢!接下来,正片开始。 Kotlin是一种具有显著特性的编程语言,新手入门可先了解其入门知识,以及新手可能遇到的常见问题。 入门知识 与Java的关系:Kotlin与Java语言具…

作者头像 李华
网站建设 2026/4/22 8:15:02

三角形正反面之谜:三个点如何决定朝向?

你在做 3D 的时候,迟早会遇到一个“灵异事件”: 模型明明在眼前,结果转个角度它就消失了 开了背面剔除(Backface Culling),模型像被削了一层皮 做了镜像(Scale = -1),整个模型忽然“里外翻转” 阴影破洞、轮廓闪烁、某些面忽隐忽现 这时候很多人第一反应是:法线坏了?…

作者头像 李华
网站建设 2026/4/23 0:40:10

同花顺 app 设置技巧

自选分添加,是在右下就 同顺商城里面设置,搜索添加横屏日线操作:长按是日线游走。否则是日线时间滑动。

作者头像 李华