什么是可以解释仅包含System.out.print()
语句的 java 类文件(字节码)的简单 C/C++ 代码。(我查看了简单的开源 JVM,但由于完整性,它们有点复杂。)
或者我在哪里可以找到解释器制作指南(即 Java 字节码的解释)
问问题
542 次
1 回答
1
也许您正在寻找Java 虚拟机规范。
虽然您的问题一开始可能看起来微不足道,但这仅仅是因为 JVM 对即使是这样的简单类的内部方面的外观也非常好:
final class WorldGreeter {
public static void main(final String[] argv) {
System.out.println("Greetings, Earth!");
}
}
阅读规范的第五章,即加载、链接和初始化,您会发现虚拟机必须做大量工作才能运行最简单的程序。
为了指出所有这些复杂阶段的必要性,我假设您使用的是标准的 Oracle JDK;根据这篇博文,您会认为 System.out 的初始化需要做很多工作——即加载几个不同的类,更重要的是一个工作的 JNI 层。
现在,您没有理由需要使用 Oracle JDK 实现......当然,您可以使用更简单的设置,但是加载、链接和初始化阶段的大部分结构和工作仍然有效。这并不像你的直觉告诉你的那么容易。
于 2012-05-24T19:21:13.473 回答