0

什么是可以解释仅包含System.out.print()语句的 java 类文件(字节码)的简单 C/C++ 代码。(我查看了简单的开源 JVM,但由于完整性,它们有点复杂。)

或者我在哪里可以找到解释器制作指南(即 Java 字节码的解释)

4

1 回答 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 回答