一、什么是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中的解释器编译,解释执行为不同平台所需要的机器码

(英语——》普通话——》各地的方言)


3)javac和JVM都包含在JDK(Java Developement ToolKit)中



参考自:牛客网   渣渣~~  的回答

参考自:旺旺老师




Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐