2014-03-03 77 views
0

我想了解Java程序是解释还是编译,为什么?Java - 解释还是编译?

我(我想)知道编译和intrepertations的定义:

编译 - 将源代码转换为机器代码。然后可以执行机器码。

解释 - 翻译代码并同时运行它。翻译一行源代码,运行它,翻译下一行,运行它,等等。

这些定义是正确的?如果是这样,是Java程序解释还是编译,为什么?

+3

这些是编译和解释的两种可能的定义。它们都不适用于Java或几乎任何其他现代PL实现。 –

+0

请尝试使用以下确切标题进行搜索:https://www.google.com/search?q=Java+-+Interpreted+or+compiled%3F – aliteralmind

回答

2

Java既不兼容也不兼容。

Java的源代码是编译成字节码,然后将其由Java虚拟机解释

+0

虽然也可能需要从字节码到机器代码进行JIT(如果需要)(而不是解释字节码) –

+0

@Philipp感谢您的回答。我明白*'源代码被编译为字节码'*部分。但是我很难理解*'字节码是由Java虚拟机'部分解释的。解释的定义(纠正我,如果我错了)大致是:将一行代码(在这种情况下,字节码)转换为更低级的语言,然后运行此行(依此类推)。如果这是真的,那么**解释将字节码转换为什么更低级的语言?**它是纯粹的机器级二进制代码吗? –

+0

@Prog是的。 Java字节码是一种独立于机器的汇编程序代码。 JVM然后将其转换为它在其上执行的CPU的指令。 (严重过分简化) – Philipp