先能不能解释下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}
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}
解决方案 »
- JFileChooser打开文件夹时只显示特定类型的文件
- netbeans 编译出错问题
- 不可变类的问题?
- 如何在JWindow中使用JTextField?
- 怎么安装和使用oracle9i的oci 驱动?
- 谁有ApacheModuleJServ.dll这个文件发到我的邮箱啊
- 谁想要jsp 的空间
- 请问Java从哪本书开始学?
- Java中有不有与VB中Replace函数功能类似的函数?
- 为什么我的IE总是找不到com.sum.java.swing.JScrollPane?
- java不同于C++有sizeof操作,因为它的基本类型长度是固定的.是这样吗??
- 一个简单程序,帮我调试下,顺便讨论一个问题.
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}
Inside the java virtual Machine
jvm 规范 //非常好的书,不过没有多少例子,看起来有些枯燥。
还有我现在正在看的一本Java Virtual Machine , 作者是John Meyer and Troy Downing,感觉这本书不错,举了很多例子来分析