千家信息网

JVM的体系结构是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,JVM的体系结构是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是JVM呢?虚拟机是物理机的软件实现。Java是用WORA(编写
千家信息网最后更新 2026年10月31日JVM的体系结构是什么

JVM的体系结构是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

什么是JVM呢?

虚拟机是物理机的软件实现。Java是用WORA(编写一次运行到任何地方)的概念开发的,它在VM上运行。编译器将Java文件编译成Java .class文件,然后将.class文件输入JVM, JVM加载并执行类文件。下面是JVM的架构图。

JVM是如何工作的?

如图所示,JVM分为三个主要子系统:

  1. 类加载器子系统

  2. 运行时数据区

  3. 执行引擎

1. 类加载器子系统

Java的动态类加载功能由类加载器子系统处理。它装载的链接。在运行时而不是编译时首次引用类时初始化类文件。

1.1 加载

类将由该组件加载。引导类加载器、扩展类加载器和应用程序类加载器是有助于实现这一目标的三个类加载器。

  1. 引导类加载器 - 负责从引导类路径加载类,除了rt.jar什么也没有。这个加载程序将获得最高优先级。

  2. 扩展类加载器 - 负责加载ext文件夹**(jre\lib)**中的类。

  3. 应用程序类加载器 -负责加载应用程序级类路径、所述环境变量的路径等。

上述类加载器在加载类文件时将遵循委托层次结构算法。

1.2 链接
  1. 验证 - 字节码验证器将验证生成的字节码是否正确,如果验证失败,我们将得到验证错误。

  2. 准备 - 内存将为所有静态变量分配默认值。

  3. 解析 - 所有符号内存引用将被来自方法区域的原始引用所替换。

1.3 初始化

这是类加载的最后阶段;在这里,所有静态变量都将被赋初始值,并且静态块也会被执行。

2. 运行时数据区

运行时数据区被分为五个主要组件:

  1. 方法区 - 所有类级数据都将存储在这里,包括静态变量。每个JVM只有一个方法区,它是资源共享的。

  2. 堆 -所有对象及其对应的实例变量和数组都将存储在这里。每个JVM也仅有一个堆。由于方法区和堆被多个线程共享内存,因此存储的数据不是线程安全的。

  3. 栈-每个线程将创建一个单独的运行时栈。每个方法调用都会在栈内存中生成一个条目,称为栈帧。所有本地变量都将在栈内存中创建。栈区域是线程安全的,因为它不是内存共享的。

    栈区域被分为三个部分:

    1. 局部变量数组 - 与方法相关,涉及到局部变量以及相应的值都将存储在这里。

    2. 操作数堆栈 -如果需要执行任何中间操作,操作数堆栈充当运行时工作区来执行操作。

    3. 帧数据 - 所有与方法对应的符号都存储在这里。在任何异常情况下,catch块信息都将保存在帧数据中。

  4. PC寄存器 - 每个线程将有单独的PC寄存器,以保持当前执行指令的地址一旦指令执行,PC寄存器能顺利地更新到下一条指令。

  5. 本地方法栈 - 本机方法栈保存着本地方法信息。对于每个线程,都将创建一个单独的本机方法栈。

3. 执行引擎

被分配给运行时数据区的字节码将由执行引擎执行。执行引擎读取字节码并逐个执行。

  1. 解释器 - 解释器更快地解释字节码,但执行速度很慢。解释器的缺点是,当一个方法被多次调用时,每次都需要一个新的解释。

  2. JIT编译器

    - JIT编译器消除了解释器的缺点。执行引擎将在转换字节码时使用解释器的帮助,但是当它发现重复的代码时,它使用JIT编译器,JIT编译整个字节码并将其更改为本机代码。此本机代码将直接用于重复的方法调用,从而提高系统的性能。

    1. 中间代码生成器 - 生成中间代码

    2. 代码优化器 - 负责优化上面生成的中间代码

    3. 目标代码生成器 - 负责生成机器代码或本地代码

    4. 分析器 - 一个特殊的组件,负责寻找热点,即方法是否被多次调用。

  3. 垃圾收集器:收集和删除未引用的对象。可以通过调用 System.gc()触发垃圾收集,但不能保证执行。JVM的垃圾收集收集创建的对象。

Java本地接口(JNI): JNI将与本地方法库交互,并提供执行引擎所需的本地库。

本机方法库: 这是执行引擎所需的本机库的集合。

看完上述内容,你们掌握JVM的体系结构是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

方法 代码 运行 变量 数据 字节 引擎 文件 编译 解释 内存 线程 本机 生成 解释器 存储 验证 子系统 程序 编译器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中关村互联网 科技集团 重生之互联网科技帝国 盈实互联网科技 期待互联网科技 互联网科技股票 凡科互联网科技 上海致骋互联网科技 居家互联网科技有限公司 互联网实体化科技化 互联网科技寓意 承德科技产业互联网发展 汽车互联网创新科技园 佳云科技和互联网广告 成都铂石互联网科技做什么的 哈尔滨屹滨互联网科技有限公司 怎样加入科技互联网 吉林省码上互联网科技电话 山东蛋芒互联网科技有限公司 数字科技和互联网金融哪个好 株洲百竞科技的互联网营销顾问 广东猪兼强互联网科技有限公司 互联网金融科技创新 互联网科技美容 互联网系的金融科技公司 受益于互联网科技的高速发展 呼和浩特新华互联网科技学院 互联网科技创新的路径 2021互联网科技公司排名 上海同邻互联网科技有限公司规模 科技互联网专业工作会议发言稿
0