先能不能解释下javap到底是用来干嘛的》》》??
Compiled from "d.java"
class d extends java.lang.Object{
d();
  Code:
   0: aload_0
   1: invokespecial #1; //Method java/lang/Object."<init>":()V
   4: returnpublic static void main(java.lang.String[]);
  Code:
   0: new #2; //class B
   3: dup
   4: invokespecial #3; //Method B."<init>":()V
   7: astore_1
   8: return}

解决方案 »

  1.   

    class d extends java.lang.Object{
    d();   //构造方法 
      Code:
      0: aload_0   //把第一个局部变量读入栈顶,注意非static方法的第一个局部变量是对象本身,就是我们说的this
      1: invokespecial #1; //Method java/lang/Object." <init>":()V   //调用父类Object的<init>方法(包括构造方法,初始话语句等的一个方法)
      4: return    //结束返回public static void main(java.lang.String[]);   //main方法 
      Code:
      0: new #2; //class B       new操作,创建B类型的对象
      3: dup                   //将创建的对象引用复制到栈顶,下面调用构造方法用
      4: invokespecial #3; //Method B." <init>":()V    //调用栈顶引用的(dup的结果)的<init>方法
      7: astore_1      //对象构造完成后完成赋值,没看到源代码,应该是类似B b = new B();完成这个 =对应的操作
      8: return}
      

  2.   

    javap就是实现对class文件的反编译。
      

  3.   

    http://topic.csdn.net/u/20080926/14/eda457f0-044f-47ff-8fd1-4363749a96d4.html
      

  4.   

    推荐3本书 :
    Inside the java virtual Machine
    jvm 规范  //非常好的书,不过没有多少例子,看起来有些枯燥。
    还有我现在正在看的一本Java Virtual Machine , 作者是John Meyer and Troy Downing,感觉这本书不错,举了很多例子来分析