什么是Java虚拟机?为什么Java被称为平台无关的编程语言?

一、什么是java虚拟机?

java虚拟机是执行字节码文件(.class)的虚拟机进程。

java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统

二、为什么java被称为平台无关的编程语言?

因为不同的平台装有不同的JVM,它们能够将相同的.class文件,解释成不同平台所需要的机器码。正是因为有JVM的存在,java被称为平台无关的编程语言

三、详细解释(可以不看)

1)什么是平台?

CPU和操作系统的总称。

CPU进行计算和控制计算机系统,所以每种CPU都有自己的指令集

操作系统:控制程序执行的程序,充当程序和硬件之间的中介

2)什么是平台无关(跨平台)?

平台无关,不是说源程序(.java)和平台无关,能运行在各个不同的平台;而是说源程序编译后的.class文件,能在不同的平台上运行(只要不同的平台装有不同的JVM)

那来个平台相关的例子:VC编译出来的C语言可执行文件exe,能够在windows上运行,不能在linux上运行。

也就是说java源程序不是直接编译成机器码,而是二次编译的。第一次java源程序被javac编译成.class文件(这个文件和平台无关)。第二次,.class文件被JVM中的解释器编译,解释执行为不同平台所需要的机器码