您的位置:首页 > 编程语言 > Java开发

Java虚拟机(JVM)的“一次编写,到处运行”

2016-06-16 16:31 399 查看

如何理解“一次编写,到处运行”,即 Write Once and Run Anywhere(WORA)?

关于java的跨平台特性,我想用两句话概述下,就是

执行的是字节码(bytecode),而不是二进制码。

java语言之所以能够实现跨平台,本质原因是JVM不是跨平台的。

如何理解WORA?

一次面试时被问到这个问题,说实话,我是个java菜鸟,第一次同时这个概念,我之前只知道java是跨平台的,与平台无关的。

如果问我为什么?只相到一个词,虚拟机,当时回答的很没有逻辑,估计给面试官留下不好的印象,好像还提到JNI的概念,我现在还不知道这跟JNI 有何关系?如果你知道,可以在下面评论留言交流下吗?谢谢你,朋友。

Write Once.java程序编译一次,即可生成对应的字节码文件(.class文件),只要有虚拟机,此字节码文件就能运行,而不管所在的环境是什么样的。

Run Anywhere.就是可以到处运行。但不同的平台的虚拟机不同,由于java程序生成的字节码文件是相同的,不同平台上的不同虚拟机的映射原则不一样,可以说,JVM屏蔽了平台的差异。看下图:



jdk与JVM的关系?



参考资料

Difference between JDK, JRE and JVM:

http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

JVM (Java Virtual Machine) :

http://www.javatpoint.com/internal-details-of-jvm

Platform Independent:

http://www.javatpoint.com/features-of-java
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: