专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 什么是Java虚拟机

什么是Java虚拟机

更新时间:2022-10-11 11:05:31 来源:赢咖4 浏览914次

什么是JVM?

Java 虚拟机 (JVM)是一个引擎,它提供运行时环境来驱动 Java 代码或应用程序。它将 Java 字节码转换为机器语言。JVM 是 Java 运行时环境 (JRE) 的一部分。在其他编程语言中,编译器为特定系统生成机器代码。但是,Java 编译器为称为 Java 虚拟机的虚拟机生成代码。

JVM 是如何工作的?

首先,Java 代码被编译成字节码。这个字节码在不同的机器上被解释

在主机系统和 Java 源代码之间,字节码是一种中介语言。

Java中的JVM负责分配内存空间。

 

JVM架构

现在在这个 JVM 教程中,让我们了解 JVM 的体系结构。Java中的JVM架构包含类加载器、内存区域、执行引擎等。

1.类加载器

类加载器是用于加载类文件的子系统。它执行三个主要功能,即。加载、链接和初始化。

2.方法区

JVM 方法区存储类结构,如元数据、常量运行时池和方法代码。

3.堆

所有的Objects及其相关的实例变量和数组都存储在堆中。该内存是通用的,并且在多个线程之间共享。

4.JVM语言栈

Java 语言堆栈存储局部变量,它是部分结果。每个线程都有自己的 JVM 堆栈,在创建线程时同时创建。每当调用方法时都会创建一个新框架,并在方法调用过程完成时将其删除。

5.PC 寄存器

PC寄存器存储当前正在执行的Java虚拟机指令的地址。在 Java 中,每个线程都有其单独的 PC 寄存器。

6.原生方法栈

本机方法栈保存本机代码的指令依赖于本机库。它是用另一种语言而不是 Java 编写的。

7.执行引擎

它是一种用于测试硬件、软件或完整系统的软件。测试执行引擎从不携带任何关于被测产品的信息。

8.原生方法接口

本机方法接口是一个编程框架。它允许在 JVM 中运行的 Java 代码被库和本机应用程序调用。

9.原生方法库

本机库是执行引擎所需的本机库(C、C++)的集合。

软件代码编译和执行过程

为了编写和执行软件程序,您需要以下内容

1.编辑器 ——要输入你的程序,可以使用记事本

2.编译器 - 将您的高级语言程序转换为本机机器代码

3.链接器 ——将主程序中不同的程序文件引用组合在一起。

4.加载器 ——将文件从您的辅助存储设备(如硬盘、闪存驱动器、CD)加载到 RAM 中以供执行。执行代码时会自动完成加载。

5.执行– 由您的操作系统和处理器处理的代码的实际执行。

在此背景下,请参考以下视频并了解 JVM(Java 虚拟机)的 JVM 内部工作和架构。

Java VM中的Java代码编译和执行

现在在这个 JVM 教程中,让我们看看 JAVA 的过程。在你的主要,你有两个方法 f1 和 f2。

main方法存放在文件a1.java中

f1 作为 a2.java 存储在文件中

f2 作为 a3.java 存储在文件中

编译器将编译这三个文件并生成 3 个对应的由 BYTE 代码组成的 .class 文件。 与 C 不同,没有进行链接。

Java VM 或 Java 虚拟机驻留在 RAM 上。在执行期间,使用类加载器将类文件带到 RAM 中。BYTE 代码已针对任何安全漏洞进行验证。

接下来,执行引擎会将 Bytecode 转换为 Native 机器码。这是及时编译。这是Java相对较慢的主要原因之一。

注意: JIT或即时编译器是 Java 虚拟机 (JVM) 的一部分。它同时解释具有相似功能的部分字节码。如果大家对此比较感兴趣,想了解更多相关知识,不妨来关注一下本站的Java视频教程,里面的课程内容细致全面,通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>