源代码:
class Hello{
public static void main(String[] argv){
byte a = 0x00;
byte b = 0x01;
byte c = (byte)(a+b);
System.out.println("This is a test");
}
}
反编译:
d:\>javap -c Hello
Compiled from "Hello.java"
class Hello extends java.lang.Object{
Hello();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_0
1: istore_1
2: iconst_1
3: istore_2
4: iload_1
5: iload_2
6: iadd
7: i2b
8: istore_3
9: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
12: ldc #3; //String This is a test
14: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
17: return
}
学习学习虚拟机。
本文通过一个简单的Java程序示例,介绍了如何进行基本的字节码操作与反编译过程,包括变量定义、算术运算及输出语句的转换。
608

被折叠的 条评论
为什么被折叠?



