CPU处理器与操作系统构成的计算机系统整体成为叫平台CPU,差异主要在底层指令集不同,指令集分为精简指令集(RISC)和复杂指令集(CISC)。每个CPU都有自己的特定指令集**指令集:**是CPU中用来计算和控制计算机系统的一套指令集合
CPU,严格来说,不同的操作系统支持不同的CPU指令集。例如:早期的Mac操作系统只支持PowerPC,不能安装在IntelCPU上。Windows、Linux、MAC和Solaris都支持Intel和AMD CPU指令集Java 源代码在编译后会生成一个 Class 文件,称为字节码文件,JVM负责将字节码文件翻译成特定平台下的机器码,然后运行
简单来讲,Java的跨平台就是因为不同版本的 JVM。只要在不同的平台上安装相应的JVM,就可以运行字节码文件(.class)并运行我们编写的Java程序。
在这个过程中,我们编写的Java程序没有做任何改动,只是通过JVM的“中间层”,就可以在不同的平台上运行,真正实现了“一次编译,到处运行(write once,run anywhere)”的目的。
综上所述,JVM是跨平台的桥梁和中间件,是实现跨平台的关键。首先将Java代码编译成字节码文件,然后通过JVM将其翻译成机器语言,从而达到运行Java程序的目的。因此,运行Java程序必须有JVM的支持,因为编译的结果不是机器代码,必须在执行前由JVM再次翻译
注意:编译的结果不是生成机器代码,而是生成字节码。字节码不能直接运行,必须由JVM转换成机器码。编译生成的字节码在不同的平台上是相同的,但是JVM翻译的机器码是不同的。

JVM 由 类加载器、运行时数据区、执行引擎组成


JAVA程序的执行过程简单来说包括:
JAVA源代码编译成字节码;JAVA程序通过类加载器加载到JVM内存中;Class对象;main方法,并创建栈帧;main方法的内存地址;