JVM
JVM有自己完整的硬件体系结构,包括处理器、堆栈和寄存器,还有相应的指令体系。 字节码是指令格式。 由于JVM会屏蔽有关特定操作系统平台的信息,因此Java程序只需要生成在Java虚拟机上运行的目标代码字节码),就可以在各种平台上运行,而无需修改。 JVM是与Java平台无关的基础。 JVM执行字节码。 JVM将执行的字节码传递给解释器,翻译成对应的机器码,解释器执行。 JVM解释可执行字节码文件是JVM通过使用Java解释器来解释可执行字节码文件的过程。
Java编译器
Java源文件.Java文件) 字节码文件).class文件、特殊二进制文件、二进制字节码文件) ),该字节码就是JVM的“机器语言”。 javac.exe可以很容易地被视为Java编译器。
Java解释器
是JVM的一部分。 Java解释器用于解释Java编译器编译的程序。 java.exe可以很容易地被视为Java解释器。
注意:一个平台的二进制可执行文件通常不在其他平台上运行,因为它包含目标处理器的机器语言。 Class文件这一特殊二进制文件可以在支持Java虚拟机的所有硬件平台和操作系统上运行。
维基百科定义:
JVM :可以运行Java bytecode的虚拟机。
字节码:字节码已编译,但与特定机器码无关,是需要解释器翻译才能成为机器码的中间代码。
Java字节码: Java虚拟机执行的指令格式。
解释器:一种计算机程序,可以一行一行地直接翻译和执行高级编程语言。 解释器不会一次翻译整个程序,而是像一个“中间人”一样,每次运行程序时都会转换为其他语言运行,因此解释器运行程序的速度会变慢。 每翻译一行程序描述就立即执行,像翻译下一行并执行一样,进行得很快。 首先将源代码翻译成另一种语言,这样可以多次运行而无需编译。 那个产品不依赖编译器运行,程序运行速度比较快。
即时编译just-in-time compilation : JIT )实时编译,也称为即时编译。 它是一种在运行时将字节码编译为本机机器码的技术,用于一句一句地翻译源代码,但可以缓存翻译的代码以防止性能下降。 该技术用于提高虚拟机的性能。
JIT编译器是JRE的一部分。 原来的Java程序都被解释和执行,执行速度一定比可执行的二进制代码程序慢。 为了提高执行速度,引入了JIT。 运行时,JIT保存翻译的机器码,为下次使用做准备。 由于JIT在编译每个字节码时负担过重,因此它只编译经常运行的字节码,如循环和频繁使用的方法。 将整个方法的字节码以整个方法为单位)一次编译为本地计算机代码,然后直接执行编译的计算机代码。
二进制文件:广义二进制文件是文件,因文件存储在外部存储设备中的方式为二进制而得名。 狭义的二进制文件是指文本文件以外的文件。 文本文件的格式为ASCII、MIME和txt。