我使用.jar
和已检查的代码反编译jd-gui
文件,我发现它与原始.java
文件不同。
原始代码
if ( total != 0 ) {
result[ i ] = bdResult.multiply( bdItem ).divide( bdTotal, 0,
RoundingMode.DOWN ).setScale( 0, RoundingMode.DOWN ).intValue();
}
反编译代码
if (total == 0)
continue;
result[i] = bdResult.multiply(bdItem).divide(bdTotal, 0,
RoundingMode.DOWN).setScale(0, RoundingMode.DOWN).intValue();
为什么会这样?
此外,反编译代码在语法上是错误的(括号括起来?)
答案 0 :(得分:2)
通过反编译获取原始代码是不可能的,因为不同的代码可能导致相同的java字节代码语句。但是,您将获得一个与原始版本执行完全相同操作的等效版本。
答案 1 :(得分:1)
反编译代码总是尝试执行与源代码相同的操作,但由于编译器的优化而以不同的方式编写。它们是一些比其他更好的反编译器,请检查article