首先介绍一下什么是java虚拟机。
java虚拟机是一个可以执行java字节码的虚拟进程。通俗的说就是利用软件模拟出来的一台计算机,有自己的处理器、堆栈、寄存器等模拟组件和相应的指令系统。
java虚拟机的跨平台性并不是java源程序的跨平台,并不是单纯的说将.java文件拷贝到另一个操作系统仍然可以正常运行。如果是这样的话,所有的语言都是可以跨平台的。.c文件 .java文件等等,这些文件都是没有经过编译的文件。而这里所说的文件是机器能识别的二进制文件。而.java文件经过编译后的.class字节码文件就是我们这里所说的二进制文件。.class文件再运行到JVM上,java解释器会将其解释成相应平台的机器码执行,所以java所谓的跨平台是在不同的平台上安装了不同的JVM,而在不同平台上生成的.class文件是相同的,再将.class文件交给对应平台的JVM生成对应平台的机器码执行程序。