高端网站开放,怎样让百度搜索到自己的网站,建俄语网站,亚马逊雨林现状jvm体系结构各位读者好#xff01; 在JVM系列的上一篇文章中#xff0c;开发人员了解了虚拟机的ClassLoader和Runtime Data Areas组件。 本教程将帮助开发人员正确理解JVM中的执行引擎 。 1.简介 在继续之前#xff0c;让我们看一下Java虚拟机及其基本特征。 1.1什么是Jav… jvm体系结构 各位读者好 在JVM系列的上一篇文章中开发人员了解了虚拟机的ClassLoader和Runtime Data Areas组件。 本教程将帮助开发人员正确理解JVM中的执行引擎 。 1.简介 在继续之前让我们看一下Java虚拟机及其基本特征。 1.1什么是Java虚拟机JVM Java虚拟机JVM是驻留在您的计算机上的抽象虚拟机并为Java字节码提供了运行时环境以供执行。 JVM可用于许多硬件和软件平台但是很少有Java开发人员知道Java运行时环境 JRE是Java虚拟机 JVM的实现。 JVM分析字节码对其进行解释然后执行相同的字节码以显示输出。 JVM的基本功能是执行已编译的.class文件即字节码并生成输出。 请注意 每个操作系统都有一个不同的JVM但是在所有操作系统上生成的字节码输出都是相同的。 这意味着在Windows操作系统上生成的字节码也可以在Linux操作系统上运行反之亦然从而使Java成为独立于平台的语言。 图1Java虚拟机概述 1.1.1 JVM做什么 Java虚拟机执行以下操作 加载所需的.class和jar文件 分配参考并验证代码 执行代码 为Java字节码提供运行时环境 1.1.2 JVM内部架构 下图显示了符合JVM规范的Java虚拟机的关键内部组件。 图2Java虚拟机架构 下面分别说明图2所示的执行引擎组件。 1.2 JVM中的执行引擎 该组件执行通过类加载器分配给运行时数据区域的字节码。 该字节码作为指令读取每个字节码指令由一个1字节的OpCode和一个加法操作数组成。 请注意 Java字节码是以人类可读的形式编写的因此执行引擎必须将字节码更改为Java虚拟机中的机器可以轻松执行的语言。 执行引擎具有三个主要子组件即 解释器 此组件读取字节码指令并以顺序方式执行它们。 该组件通过接受文件名参数从命令行运行应用程序。 可以使用以下原型命令 java _compiled_file_name_without_extension_ 请记住 虚拟机解释器加载的已编译类即.class文件必须包含采用以下形式的main()方法。 public static void main(String[] args) { // Sample code here} JITJust In Time编译器 该组件抵消了解释器执行缓慢的缺点并提高了性能。 JIT编译器同时编译字节码的相似部分从而减少了编译所需的总时间。 该组件中的编译器是指将JVM指令集转换为特定于OS的指令集的转换器。 Oracle使用称为Hotspot Compiler的编译器来搜索需要通过概要分析以最高优先级进行编译的热点然后将该热点编译为本机代码。 垃圾收集 此组件是执行引擎的一部分该引擎通过收集和删除未引用的对象来释放内存 图3JVM中的执行引擎 1.3如何编译和执行Java类 本节将演示Java类的编译和执行 。 让我们借助示例代码片段来了解此过程。 1.3.1创建Java文件 打开操作系统命令提示符我们将使用“记事本”创建一个简单的Java类。 可以使用以下Java命令。 notepad _sample_file_name_with_extension_ 该命令提供以下输出。 图4使用记事本创建Java文件 1.3.2编写示例Java代码 如图4所示该命令将打开一个记事本 开发人员可以将示例代码添加到显示虚拟输出的Welcome.java文件中。 示例代码如图5所示 成功执行后将显示问候消息 。 图5添加示例代码 1.3.3编译Java类 将代码保存在Welcome.java文件中后开发人员将需要对其进行编译 。 该编译将生成Welcome.class文件该文件又将生成.class文件。 要编译该文件可以使用以下Java命令。 javac _Java_file_name_with_extension_ 该命令提供以下输出。 图6编译文件 1.3.4执行Java类 现在开发人员将需要执行生成的Welcome.class文件以显示输出。 要执行该文件可以使用以下Java命令。 java _Compiled_file_name_with_extension_ 该命令提供以下输出。 图7执行文件 1.4 JVM与JRE与JDK 在继续完成本教程之前让我们看一下Java编程的三个重要关键字。 许多开发人员无法获得两者之间的差异。 Java虚拟机JVM JVM是一种虚拟机为执行Java字节码提供了运行时环境 Java运行时环境JRE JRE是一个在其中运行JVM的环境并具有Java虚拟机在执行时使用的类库和其他文件。 换句话说JRE Java虚拟机JVM运行该应用程序的库 Java开发工具包JDK JDK是JRE的父集具有JRE包含的所有内容以及开发工具例如编译器调试器等。换句话说JDK Java运行时环境JRE开发工具 这是JVMJRE和JDK的图形表示。 图8JVMJRE和JDK表示形式 这就是这篇文章的全部内容。 学习愉快 2.结论 在本教程中开发人员对JVM中的执行引擎组件进行了概述。 您可以在“ 下载”部分中下载示例代码。 3.下载源代码 这是Java虚拟机JVM中执行引擎的概述教程。 下载 您可以在此处下载本教程的源代码 Compilation_and_Execution 翻译自: https://www.javacodegeeks.com/2018/04/jvm-architecture-execution-engine-in-jvm.htmljvm体系结构