// @@@@@@@@@@@@@ Fields
private boolean field_5016 ;
private int field_5020 ;
private boolean field_5024 ;
private String field_5028 ; // @@@@@@@@@@@@@ Static routines public <init>( com.ldware.smsfirewall.common.Options );
{
0 : enter_narrow
1 : aload_0
2 : invokespecial_lib java.lang.Object.<init> // get_name_1: net.rim.tools.compiler.codfile.Identifier@6c5e0272( java.lang.Object ) // get_name_2: java.lang.Object.<init>
3 : aload_0
4 : iconst_1
5 : putfield .field_ // get_name_1: .field_ // get_name_2: .field_
6 : aload_0
7 : bipush 7
8 : putfield .field_1 // get_name_1: .field_1 // get_name_2: .field_1
9 : aload_0
10 : iconst_0
11 : putfield .field_2 // get_name_1: .field_2 // get_name_2: .field_2
12 : aload_0
13 : ldc_nullstr
14 : putfield .field_3 // get_name_1: .field_3 // get_name_2: .field_3
15 : return
}
这是一个构造函数,哪个高手可以解释一下?aload,iconst,ldc_nullstr。等等的是什么意思,我发现这个代码都是带a,i....等等的前缀,分别代表什么呢?
private boolean field_5016 ;
private int field_5020 ;
private boolean field_5024 ;
private String field_5028 ; // @@@@@@@@@@@@@ Static routines public <init>( com.ldware.smsfirewall.common.Options );
{
0 : enter_narrow
1 : aload_0
2 : invokespecial_lib java.lang.Object.<init> // get_name_1: net.rim.tools.compiler.codfile.Identifier@6c5e0272( java.lang.Object ) // get_name_2: java.lang.Object.<init>
3 : aload_0
4 : iconst_1
5 : putfield .field_ // get_name_1: .field_ // get_name_2: .field_
6 : aload_0
7 : bipush 7
8 : putfield .field_1 // get_name_1: .field_1 // get_name_2: .field_1
9 : aload_0
10 : iconst_0
11 : putfield .field_2 // get_name_1: .field_2 // get_name_2: .field_2
12 : aload_0
13 : ldc_nullstr
14 : putfield .field_3 // get_name_1: .field_3 // get_name_2: .field_3
15 : return
}
这是一个构造函数,哪个高手可以解释一下?aload,iconst,ldc_nullstr。等等的是什么意思,我发现这个代码都是带a,i....等等的前缀,分别代表什么呢?
源代码:
private final Reader reader;
private final StringBuffer buff;
private boolean closed;
public ReaderCharacterIterator(Reader reader)
{
this.reader = reader;
this.buff = new StringBuffer(512);
this.closed = false;
}反编译后:
private final java.io.Reader field_5766 ;
private final StringBuffer field_5770 ;
private boolean field_5774 ; public <init>( me.regexp.ReaderCharacterIterator, java.io.Reader );
{
0 : enter
1 : aload_0
2 : invokespecial_lib java.lang.Object.<init> // get_name_1: net.rim.tools.compiler.codfile.Identifier@6c5e0272( java.lang.Object ) // get_name_2: java.lang.Object.<init>
3 : aload_0
4 : aload_1
5 : putfield .field_ // get_name_1: .field_ // get_name_2: .field_
6 : aload_0
7 : new_lib StringBuffer
8 : dup
9 : sipush 512
10 : invokespecial_lib java.lang.StringBuffer.<init> // get_name_1: net.rim.tools.compiler.codfile.Identifier@6c5e0272( java.lang.StringBuffer, int ) // get_name_2: java.lang.StringBuffer.<init>
11 : putfield .field_1 // get_name_1: .field_1 // get_name_2: .field_1
12 : aload_0
13 : iconst_0
14 : putfield .field_2 // get_name_1: .field_2 // get_name_2: .field_2
15 : return
}
楼主有心学习的话可以去看看<深入JAVA虚拟机>
楼主有心学习的话可以去看看<深入JAVA虚拟机>
public <init>( com.ldware.smsfirewall.common.Options );这个简单说来,就是
com.ldware.smsfirewall.common.Options的构造函数。
2、jd-gui个人推荐第二个 因为第二个是图形界面的操作,比较方便第一个是在CMD下操作的。