先能不能解释下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}
解决方案 »
- 哎,到底问题出在哪里?看了好久没看出来!
- 谁来解释,基本类型与对象参数传递问题?
- 关于thinking in EnterpriseJava
- 問幾個基礎的語法問題 ( 繼續討論 )
- 如何关闭JFrame的图标显示
- 请问在jsp中想得到访问机器的操作系统用什么方法?
- 如何检查cpu怎样被占用的
- JDK1.4包含了assert,JUNIT还有使用的价值吗?
- jbuilder5的序列号?
- 在容器管理持久性(Container-Managed Persistence)实体bean配置工具的数据源设置中如何加入动态查询
- 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,感觉这本书不错,举了很多例子来分析