【问题标题】:What is the purpose of bytecode? [duplicate]字节码的目的是什么? [复制]
【发布时间】:2015-08-04 21:43:42
【问题描述】:

据我所知,字节码是一种由虚拟机使用的中间语言,必须在计算机上安装才能运行程序。 Wikipedia 说,VM 要么直接执行字节码,要么生成机器码以获得更好的性能。文章还说,字节码是一组指令。对我来说,这听起来像是普通的机器代码,只是只有 VM 可以理解(对吗?)。

那么字节码的目的是什么?如果虚拟机也可以编译成机器码,为什么编译器不能直接编译,我们不需要虚拟机,性能更好?

【问题讨论】:

  • 我去了一个知名搜索引擎并输入了您的确切主题行:“字节码的目的是什么?”第一个命中是一个与此问题非常相似的 SO 问题,并且该问题与我现在标记为重复的问题相关联。在请陌生人为您做之前,请先努力研究您的问题;如果您这样做了,请提供该研究的一些结果,以便我们可以更好地调整我们的回应,而不是重新散列已经存在的内容。

标签: java c# virtual-machine bytecode


【解决方案1】:

这可能不是这个问题的最佳位置,但这取决于。对于 Java,可移植性是王道。

Windows 应用程序的优势在于您可以依赖许多不使用程序编译的系统库。它还扩展了可移植性,因为代码将不依赖于架构(通常)。

更一般地说,您可以生成字节码编译器,这些编译器可以生成符合多种语言的相同字节码标准的代码,从而提供模块之间的轻松互操作性。 (就像在.NET中一个c#库可以在VB项目中引用)

当然有更深入的解释,但通常这些都是优点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2011-06-28
    • 2020-05-25
    • 2013-01-19
    相关资源
    最近更新 更多