jadclipse 反编译乱码问题



例子一:赋值


反编译过来的代码如下: 

        Node node; 
        Node node1 = _$3.getChildNodes().item(0); 
        node1; 
        node1; 
        JVM INSTR swap ; 
        node; 
        getChildNodes(); 
        0; 
        item(); 
        getChildNodes(); 
        0; 
        item(); 
        getNodeValue(); 
        String s; 
        s; 

原始语句: 

        Node node; 
        Node node1 = currDocument.getChildNodes().item(0); 
        node = node1; 
        String s = 
        node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue(); 

注解: 
        JVM INSTR swap ; //赋值语句 
练习: 
        String s1; 
        String s8 = 
        node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue(); 
        s8; 
        s8; 
        JVM INSTR swap ; 
        s1; 
        10; 
        Integer.parseInt(); 
        int i; 
        i; 

例子二:不带参数创建对象

反编译过来的代码如下: 
        JVM INSTR new #244
        JVM INSTR dup ; 

        JVM INSTR swap ;         

        CrossTable(); 

        CrossTable crosstable; 
        crosstable; 

原始语句: 
        CrossTable crosstable = new CrossTable(); 
注解: 
练习: 
        JVM INSTR new #246
        JVM INSTR dup ; 
        JVM INSTR swap ; 
        Database(); 
        Object obj; 
        obj; 


例子三:带参数创建对象
反编译过来的代码如下: 

        JVM INSTR new #262
        JVM INSTR dup ; 
       JVM INSTR swap ; 
        String.valueOf(s2); 
        StringBuffer(); 
        s.substring(j, i); 
        append(); 
        s6; 
        append(); 
        toString(); 
        s2; 
  

原始语句: 

 s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString(); 

注解: 此语句实际上是:s2 += s.substring(j, i) + s6; 

练习: 
例子四:for循环

反编译过来的代码如下: 

        int k = 0; 
        goto _L4 
_L8: 
 ... 
 k++; 
_L4: 
       if(k < as.length) goto _L8; else goto _L7 原始语句: 
 for(int k=0;k < as.length;k++) 
 { 
     ...
 } 

注解: 

例子五:while 循环
反编译过来的代码如下: 
        String s1 = ""; 
          goto _L1 
_L3: 
        JVM INSTR new #262
        JVM INSTR dup ; 
        JVM INSTR swap ; 
        String.valueOf(s1); 
        StringBuffer(); 
        _$2(resultset, s, l); 
        append(); 
        toString(); 
        s1; 
_L1: 
        if(resultset.next()) goto _L3; else goto _L2 

原始语句: 
 String s1 = ""; 
 while(resultset.next()) 
 { 
  s1 = s1 + resultSetToString(resultset, s, l); 
 }  

你可能感兴趣的:(java基础)