我曾经认为Java可以被反编译,因为它编译成字节码而不是目标码。这是错误的,因为隐含的假设字节码比目标码“更易读”。为什么用 Java 编写的程序可以如此容易地被反编译,甚至具有相同的标识符(变量名)?听说C/C++只能反汇编成汇编,不能反编译成源代码,为什么呢?
问问题
373 次
我曾经认为Java可以被反编译,因为它编译成字节码而不是目标码。这是错误的,因为隐含的假设字节码比目标码“更易读”。为什么用 Java 编写的程序可以如此容易地被反编译,甚至具有相同的标识符(变量名)?听说C/C++只能反汇编成汇编,不能反编译成源代码,为什么呢?