关于java反编译:被证实的怀疑让我们收获
2012-09-18 22:43
204 查看
发现反编译后的代码和源代码有些不一样的,如果版本拿的不对的话之前的工作就白做了,后来才知道原来是编译器在作怪,虚惊一场。
编译器不能百分百的将class文件还原成源文件,遇到不一样的地方,要分析一下不一样的地方有什么特征,想一想可能那些地方出了问题。
下面的代码有几处和源代码不一样:
有些时候try catch的处理也会出现不一致,还有不同的反编译工具处理得到的结果也不一样!
要怀疑,然后再证实,被证实的怀疑让我们收获。
编译器不能百分百的将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的处理也会出现不一致,还有不同的反编译工具处理得到的结果也不一样!
要怀疑,然后再证实,被证实的怀疑让我们收获。
相关文章推荐
- 关于Java调用外部程序即时输出的一些收获
- 前言 我们知道不同的操作系统有各自的文件系统,这些文件系统又存在很多差异,而Java 因为是跨平台的,所以它必须要统一处理这些不同平台文件系统之间的差异,才能往上提供统一的入口。 关于FileSy
- 关于Java的Classloader的讨论收获
- 关于java泛型擦除反编译后泛型会出现问题
- 关于JAVA项目中引入jar包的反编译修改问题
- 关于java中JButton的样式设置(的一些我们应该知道的函数)(转)
- 关于java的collection框架我们最应该知道的两个接口和四个实现类
- 关于Java截屏软件的开发收获
- 关于几个常用java命令反编译(Fernflower decompiler)的结果
- 关于反编译apk出现Exception in thread "main" java.lang.ClassCastException: ....
- 关于java代码中的注释问题。(类中方法的注释,我们一般都要写上这个方法的文档(doc),方法的参数也要有它的文档)
- 关于Java与.net的争论,我们从编程思维上来找取舍。
- 关于Java与.net的争论,我们从编程思维上来找取舍。
- Java80商城系统第十节-轮播图和关于我们
- 关于Java的Classloader的讨论收获
- 关于__proto__与prototype ---写给懂java的人看(我们都被忽悠了.........)
- 记录个面试经历,关于java内存区域,感觉被玩了一遍,怀疑人生
- 关于JAVA中:int和byte的互相转换
- java中-关于Static函数的用法
- 关于我们男人的