一个普通的Java类:
public class Test // 从Object类继承


{
public static void main(String[] args)

{
System.out.println(new Test().toString());
}
}
现在我们使用JDK带的反编译工具javap来反编译Test.class,先执行下面的命令:
javap Test > Test.txt
打开Test.txt文件后,会看到如下的代码:

public class Test extends java.lang.Object
{
public Test();
public static void main(java.lang.String[]);
}
再使用下面的命令来得到bytecode代码:
javap -c Test >Test1.txt
打开Test1.txt后,会看到如下的代码:

public class Test extends java.lang.Object
{
public Test();
Code:
0: aload_0
1: invokespecial #8; //Method java/lang/Object."<init>":()V
4: return

public static void main(java.lang.String[]);
Code:
0: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream;
3: new #1; //class Test
6: dup
7: invokespecial #22; //Method "<init>":()V
10: invokevirtual #23; //Method java/lang/Object.toString:()Ljava/lang/String;
13: invokevirtual #27; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
16: return
}











现在我们使用JDK带的反编译工具javap来反编译Test.class,先执行下面的命令:







再使用下面的命令来得到bytecode代码:



















