Java反编译器的问题

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

开发Java程序的人,很多都会用Java的反编译器来反编译找不到源代码的类,

很多时候反编译的效果很好,可是其实其中也会有暗藏的错误的,下面以使用

基于jad的Java反编译器Decafe Pro为例。

(其它反编译我没有试过,有兴趣的同道可以试试)

Java程序:

/**

* 测试++i

*/

public class Test {

public static void main(String[] args) {

int i=3;

i=(++i)+(++i);

System.out.println("i="+i);

}

}

运行结果为i=9

用Decafe Pro反编译,结果为

import java.io.PrintStream;

public class Test

{

public Test()

{

}

public static void main(String args[])

{

int i = 3;

i = i++ + i;

System.out.println("i=" + i);

}

}

编译,没有错误,看来一切都好啊。可是运行一下后就看出问题来啦:运行结果为i=7.

呵呵,好危险哦,看来一定要牢记:反编译结果仅供参考。

另:看来有时想保护自己的代码时来点这个也会把那些反编译的人整整的

如i=++i,写成i=(++i)+(++i)-i 反编译后变为i = (i++ + i) - i;

就迫使别人增加了反编译的成本。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航