javap -c 操作数栈 局部变量表执行过程
- javap -v T //主要用于查看类的详细结构,帮助理解类的组成和依赖关系。 提供了详细的输出,包括类的版本信息、当前类所依赖的类、包名、访问权限、构造方法、实例字段和方法等详细信息。此外,它还可以显示内部类型签名、常量池中的类型以及字段和方法的相关信息。
- javap -c T.class //Java代码编译成字节码后的具体指令,以便理解代码的执行逻辑
java
public class T {
public int computer() {
int a = 2;
int b = 3;
int c = a + b;
return c;
}
public static void main(String[] args) {
T t = new T();
t.computer();
}
}
javap -c
E:\myproduct\target\test-classes>javap -c T.class >> hello.txt
iconst_2入栈的字节码指令
istore_1指令表示将弹出的元素放置在局部变量表第1个位置
iload_1表示将第1个局部变量压入操作数栈
Compiled from "T.java"
public class T {
public T();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public int computer();
Code:
0: iconst_2
1: istore_1
2: iconst_3
3: istore_2
4: iload_1
5: iload_2
6: iadd
7: istore_3
8: iload_3
9: ireturn
public static void main(java.lang.String[]);
Code:
0: new #2 // class T
3: dup
4: invokespecial #3 // Method "<init>":()V
7: astore_1
8: aload_1
9: invokevirtual #4 // Method computer:()I
12: pop
13: return
}