您的位置:首页 > 编程语言 > Java开发

关于java反编译:被证实的怀疑让我们收获

2012-09-18 22:43 204 查看
发现反编译后的代码和源代码有些不一样的,如果版本拿的不对的话之前的工作就白做了,后来才知道原来是编译器在作怪,虚惊一场。

编译器不能百分百的将class文件还原成源文件,遇到不一样的地方,要分析一下不一样的地方有什么特征,想一想可能那些地方出了问题。

下面的代码有几处和源代码不一样:

//源代码
public int zero;

public String net;

public static final String COM="COMPANY";

public static final double PI =3.1415926535;

public void printVar(){

System.out.println(zero);

System.out.println(net);

System.out.println(COM);

System.out.println(PI);

}
//反编译后的代码
public int zero;

public String net;

public static final String COM = "COMPANY";

public static final double PI = 3.1415926535D;  //源代码没有D

public void printVar(){
System.out.println(this.zero);

System.out.println(this.net);

System.out.println("COMPANY");//直接用值替换了变量名,
System.out.println(3.1415926535D);//   直接用值替换了变量名
}


有些时候try catch的处理也会出现不一致,还有不同的反编译工具处理得到的结果也不一样!

要怀疑,然后再证实,被证实的怀疑让我们收获。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐