字节码的目的是什么?

时间:2015-08-04 21:43:43

标签: java c# virtual-machine bytecode

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

那么字节码的目的是什么?如果VM也可以将其编译为机器代码,为什么编译器不能直接执行它,我们不需要VM并且具有更好的性能?

1 个答案:

答案 0 :(得分:0)

这可能不是这个问题的最佳位置,但这取决于。在Java的情况下,便携性是王道。

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

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

肯定有更深入的解释,但一般来说这些都是优点。