美文网首页
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言

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

作者: 住在海边的人_ | 来源:发表于2018-09-15 23:18 被阅读12次

参考答案:

Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译Java源代码。Java虚拟机使这个成为可能,因为它知道硬件平台的指令长度和其他特性。

个人理解:

Java源代码首先通过javac编译器编译成二进制的.class字节码文件(Java所谓的跨平台就是指.class字节码文件的跨平台而不是源码本身。Java字节码再运行于特定的Java虚拟机上,其中的Java解释器(jvm的一部分)会将其解释成对应平台的机器码进行执行。JVM帮助屏蔽了底层平台的具体信息因此使得Java字节码具有跨平台性。

所谓的Java跨平台性实际上就是在不同平台上安装了不同的Java虚拟机能够将生成的.class文件解释成对应平台的机器码进行执行。

机器码与字节码的区别:

机器码:完全依附于硬件而存在,并且由于不同硬件内嵌指令集不同,即使是相同的 0 1代码意思不一定相同。因此,事实上,从硬件的角度来讲根本不存在跨平台性。

相关文章

网友评论

      本文标题:什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言

      本文链接:https://www.haomeiwen.com/subject/dintnftx.html