当前位置 : 主页 > 编程语言 > java >

请问Java语言是跨平台的吗?JVM是跨平台的吗?为什么?

来源:互联网 收集:自由互联 发布时间:2022-10-26
Java语言是跨平台的,JVM是不跨平台的。 Java能跨平台正是以JVM不跨平台为代价的。 Java的跨平台性由JVM实现,即JVM用于保证java的跨平台的特性。 原理分析: JVM是在机器和编译程序之间

Java语言是跨平台的,JVM是不跨平台的。

Java能跨平台正是以JVM不跨平台为代价的。

Java的跨平台性由JVM实现,即JVM用于保证java的跨平台的特性。

原理分析:

JVM是在机器和编译程序之间加入的一层抽象的虚拟机器,

这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。

编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由 解释器 来将虚拟机代码转换为特定系统的机器码执行。

在Java中,这种供虚拟机理解的代码叫做字节码(即Java源代码经过虚拟机编译器编译后产生的文件,扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机,使Java程序无须重新编译便可在多种不同的计算机上运行。

每一种平台的解释器是不同的,但是实现的虚拟机是相同的。

Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm(字节码由虚拟机解释执行)---->jvm中解释器(虚拟机将每一条要执行的字节码送给解释器)----->机器可执行的二进制机器码---->程序运行。

上一篇:Java中Final、 finally 、finalize的区别
下一篇:没有了
网友评论