javac和字节码的区别

difference between javac and bytecode

我知道 IntelliJ 会通过单击 Main class 旁边的绿色小箭头自动执行所有操作,但我正在尝试了解下面发生的事情。

在互联网上我遇到了两件不同的事情。首先是我们执行 javac + my_file.java 时创建的文件。第二个是菜单中“查看”部分中的 Show bytecode

两者产生不同的结果,所以我正在寻找关于这两者的更多解释。

javac 生成字节码。这就是所有 JVM 语言编译的结果。

IntelliJ 的字节码查看器向您显示该字节码的 投影,因为它是 normally not human readable.

请注意,如果 class 未编译,IntelliJ 工具 将不会 工作,因为它实际上不知道确切的字节码是什么。