【发布时间】:2015-08-04 21:43:42
【问题描述】:
据我所知,字节码是一种由虚拟机使用的中间语言,必须在计算机上安装才能运行程序。 Wikipedia 说,VM 要么直接执行字节码,要么生成机器码以获得更好的性能。文章还说,字节码是一组指令。对我来说,这听起来像是普通的机器代码,只是只有 VM 可以理解(对吗?)。
那么字节码的目的是什么?如果虚拟机也可以编译成机器码,为什么编译器不能直接编译,我们不需要虚拟机,性能更好?
【问题讨论】:
-
我去了一个知名搜索引擎并输入了您的确切主题行:“字节码的目的是什么?”第一个命中是一个与此问题非常相似的 SO 问题,并且该问题与我现在标记为重复的问题相关联。在请陌生人为您做之前,请先努力研究您的问题;如果您这样做了,请提供该研究的一些结果,以便我们可以更好地调整我们的回应,而不是重新散列已经存在的内容。
标签: java c# virtual-machine bytecode