java编译器是否汇编?

时间:2015-02-26 11:44:25

标签: java assembly bytecode

因此gcc或任何C编译器都会将您的源代码编译为x86或您自己的汇编语言,然后将程序集组装成二进制文件,然后将其链接以创建可执行文件。我的问题是java编译器是否包含汇编程序?意思是有一个中间停止,因为我理解字节码不是机器代码,但它存储为二进制文件,也不是纯文本。我假设它只是以二进制格式存储的基于文本的字节码,但我真的不知道。

2 个答案:

答案 0 :(得分:7)

就像你说的,Java编译器会生成字节码。然后,这个字节码进入Java虚拟机,神奇地“使代码发生”。由于JVM是一个具有多个实现的规范,因此这个神奇的部分可以是Just In Time编译或简单解释。相关问题here

所以回答你的问题,不,java编译器不包含汇编程序。 JVM可能包含一个但不强制,因为它的实现细节。

答案 1 :(得分:3)

Java编译器以二进制格式生成字节代码,然后由Java虚拟机(JVM)在运行时将其转换为机器代码。重要的是,此步骤在运行时发生,因为这允许Java程序在多个平台上运行而无需重新编译。

您可以使用javap实用程序观察类文件中的字节码,该实用程序是Java开发工具包(JDK)的一部分。您可以使用 Jasmin, Java汇编程序等实用程序来组装自己的字节码。