首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C和Java /虚拟机代码执行

C和Java /虚拟机代码执行
EN

Stack Overflow用户
提问于 2014-02-16 11:33:48
回答 4查看 2.2K关注 0票数 2

我对Java相当陌生,我想知道为什么Java在编译(由javac编译)后使用虚拟机( java程序)来执行代码,而不是C。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-16 11:37:32

JAVA是“写一次运行在任何地方”

检查链接,它将使您清楚地了解java编译后运行How is Java platform-independent when it needs a JVM to run?的整个过程,代码实际上必须经过一个名为bytecode.This字节码的中间状态,然后由机器上的JVM占用该字节码,然后转换成机器可执行的形式。

每个不同平台的JVM是不同的,但是编译器生成的字节码是相同的,everytime.The JVM执行处理bytecode和以您正在工作的平台所理解的形式生成可执行代码的功能,这是java被称为"Write Once Run Anywhere".的原因。

票数 5
EN

Stack Overflow用户

发布于 2014-02-16 11:37:19

Java虚拟机有助于保持编译代码平台的独立性。如果没有中间平台,则必须分别编译每个平台的代码,但是对于JVM,您只能编译一次,并让适当的JVM处理执行过程。

票数 3
EN

Stack Overflow用户

发布于 2014-02-16 11:39:35

Java代码在多个阶段编译。javac验证代码,但是JIT根据程序的使用方式和运行平台将其转换为本机代码。这使得程序可以使用进程的确切芯片组或使用的芯片组,而对于它可能需要运行的所有平台来说,这是一个最低的公分母。

使用Java,您可以使用10年前在32位windows平台上编译的开源库,并将其部署到64位Linux服务器上,这样不仅可以工作,而且还可以为您的最新CPU和使用它的方式进行优化。

在Windows上开发Java应用程序并将其部署到具有不同处理器家族的Linux系统中,而不必重新编译或担心跨平台问题是非常常见的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21810538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档