【问题标题】:Does Google V8 work in similar way to Java Virtual Machine? [closed]Google V8 的工作方式与 Java 虚拟机类似吗? [关闭]
【发布时间】:2012-01-27 15:51:49
【问题描述】:

我知道 V8 是一个 JavaScript 引擎,但它的工作方式是否类似于 Java 虚拟机?

如果它不能以相同的方式工作,有什么区别? V8 是否直接将 JavaScript 编译为机器语言?

【问题讨论】:

  • 没有人真正回答你。答案是肯定的:它们都是虚拟机,一个用于 java,另一个用于 javascript(它们是非常不同的语言)。在 jvm 的情况下,这个 vm 在运行时(即解释它或 JIT - 即时编译)从 java 字节码转换为你的 cpu 的机器代码。在 V8 的情况下,它将 javascript 直接转换为机器代码。他们进行这种翻译的方式可能有所不同,但总体思路是相同的。
  • 谢谢@AndréRosa!为什么不在下面添加它作为正确答案?

标签: java javascript node.js v8


【解决方案1】:

除了 Lars Bak 对这两个项目都有帮助之外,它们是无关的。

V8 是一个 Javascript 引擎,可将 Javascript 编译为本机机器码,最受 Google Chrome 和 Node js 的使用。

JVM 是一个运行 Java 编译器生成的字节码的虚拟机。

一个是Javascript引擎,另一个是Java虚拟机,注意Java和Javascript就像汽车和地毯一样。另请注意,一个是编译器,另一个是执行媒介。

【讨论】:

  • 是的,我知道。我想问的是:这些语言是由VM解析然后解释的还是V8引擎直接将代码编译成机器语言?
  • V8 将 Javascript 编译为机器码。
  • 答案与“汽车和地毯”的问题无关
【解决方案2】:

Google 的 V8 与 Java 无关。它是一个用 C++ 编写的 JavaScript 引擎。你可以阅读更多关于它的信息here

【讨论】:

  • 他没有问它是否与 Java 有任何关系,他问它是否以类似的方式工作。它做了什么(JIT 等人)。
  • @foljs - 你错了:OP 确实问过它是否与 Java 有关。在我发布我的答案后,这个问题以一种完全改变它的方式进行了编辑。问题的原始版本(您可以通过单击问题下方“已编辑”注释旁边的日期来查看编辑历史记录)标题为“V 8 与 Java 虚拟机不同吗?”并问:“如果它们的工作方式不同,有哪些不同之处?”这就是我要回答的问题。
【解决方案3】:

它们是两种截然不同的技术,用于两种不同的编程语言 - Java 虚拟机是用于运行 Java 程序的虚拟机,而 V8 是 JavaScript 引擎。它们的名称中包含“Java”一词这一事实是相似之处的结束。

【讨论】:

  • 他问的是它是否以类似的方式工作,而不是他们是否实现相同的语言。他甚至在他的问题中特别提到他知道 V8 是用于“Javascript”而不是 Java。
猜你喜欢
  • 2010-11-06
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
相关资源
最近更新 更多