我写了一个简单的Java源码,像这样:
:
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
使用javap -c命令将其转换为等效的字节码
Compiled from "Main.java"
public class Main {
public Main();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3 // String Hello World!
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
#1,#2,#3,#4 是什么?
何时和为什么要使用它?