【发布时间】:2011-05-29 03:07:31
【问题描述】:
Java 结合使用编译和解释。 它将源代码编译成字节码,而不是直接转换成机器码。 原因是机器代码取决于系统具有的处理器类型。因此生成的机器代码将特定于特定系统,因此不可移植。
所以字节码可以被不同机器上的 JVM 识别。我的问题是这个。由于 JVM 将字节码转换为主机的机器码。而且由于有不同类型的主机。不同的机器类型对应不同的JVM吗?
【问题讨论】:
Java 结合使用编译和解释。 它将源代码编译成字节码,而不是直接转换成机器码。 原因是机器代码取决于系统具有的处理器类型。因此生成的机器代码将特定于特定系统,因此不可移植。
所以字节码可以被不同机器上的 JVM 识别。我的问题是这个。由于 JVM 将字节码转换为主机的机器码。而且由于有不同类型的主机。不同的机器类型对应不同的JVM吗?
【问题讨论】:
由于 JVM 必须在目标系统上运行,JVM 本身必须(最终)以适当的机器代码编写。
【讨论】:
是的,没错。 JVM 需要了解运行它的主机的机器架构的要求。这就是为什么download page上有这么多版本的原因。
【讨论】:
是的,这就是为什么您需要在 Oracle 网站上为您的平台(操作系统和架构)选择捆绑包的原因,例如:http://www.oracle.com/technetwork/java/javase/downloads/jre-6u25-download-346243.html
(同样适用于其他 JVM。)
【讨论】: