JVM详解:执行引擎

12/31/2023 Java

目录


参考:

  • 链接1:[https://blog.csdn.net/qq_48435252/article/details/123697193

# JVM详解:执行引擎

# 执行引擎概述

  • 执行引擎是Java虚拟机的核心组成部分之一。

  • JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM所识别的字节码指令、符号表和其他辅助信息

  • 那么,如果想让一个Java程序运行起来、执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。简单来说,JVM中的执行引擎充当了将高级语言翻译为机器语言的译者.

# Java代码编译执行过程

大部分的程序代码转换成物理机的目标代码或虚拟机能执行的指令集之前,都需要经过下面图中的各个步骤

  • 解释型语言走中间一行
  • 编译型语言走下边一行

97ab350c6292428dbced005519a1e181

Java代码编译是由Java源码编译器来完成的

a802471b862e4b378d57a18f9a05b644

Java字节码的执行是由JVM执行引擎来完成的

263f01b267da48d09c564491f07ebcdf

解释器 当Java虚拟机启动时会根据预定义的规范对字节码采用逐行解释的方式执行,将每条字节码文件中的内容“翻译”为对应平台的本地机器指令执行。

JIT编译器 就是虚拟机将源代码直接编译成和本地机器平台相关的机器语言。

# 为什么说Java是半编译半解释型语言?

Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码, 然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性, 所以说java是一种半编译半解释型的语言。

记住虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言

79ecde5eefb94a4d9ed4b7922dcdbb67

上次更新时间: 9/25/2024, 9:17:45 AM