Java中编译后的类文件保留了多少源代码信息?

当我自己的另一个项目中的一个类文件被IntelliJ(by Fernflower de-compiler)反编译时,我惊叹于反编译后的代码与源代码相比的紧密程度,甚至方法局部变量名称都与原始代码相同源代码。

我对Java编译过程如何工作以及JVM如何工作一无所知,我天真的理解是公共东西的名称在编译后可能需要保留,但是局部变量的名称,它们只是为了方便记忆人类阅读,在其范围之外完全无用,而且我认为 JVM 不需要这些信息。

那么,这些信息是反编译器通过某种魔法简单地找出来的,还是编译后的类保留了大量信息,有何用处?


撒科打诨
浏览 85回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java