Java反编译器给出了奇怪的符号

时间:2016-07-26 15:53:56

标签: java reverse-engineering decompiler unicode-literals

我正在使用Java反编译器,它似乎给出了一个合理的代码,除了它为常量整数提供了奇怪的符号。例如:

#int[] arr = new int['田'];

此符号的数字值为U + 7530。我想知道它是否可以将此符号恢复为其数值,或者我不能依赖此机制?

我的问题是这段代码给出了一个数组超出范围的异常,因此调整数组的大小非常重要。

1 个答案:

答案 0 :(得分:0)

在字节码级别,局部变量在布尔值,字节,字符,短路和整数之间没有区别。所有内容都编译为引擎盖下的内容,并在适当的位置插入截断指令。

这意味着反编译器必须随意决定将其反编译为哪种类型(假设没有调试元数据)。看起来您的反编译器决定将整数常量反编译为字符常量。