编程语言
首页 > 编程语言> > java – 编译为.class并反编译时是否丢失了任何信息?

java – 编译为.class并反编译时是否丢失了任何信息?

作者:互联网

我认为java应该对反编译相当友好,也就是说,.class文件本身有很多数据仍然很好地类似于原始源.

是否有可能从反编译的.class文件构造原始源,这将完全等效,或者是否有任何在此过程中转换的java构造?

例如,我可以看到语法糖如增强循环导致问题.

我可以多次重复这个过程并仍然到达我开始的地方吗?

解决方法:

简单的答案是,信息丢失了.

特别是评论总是丢失.原始变量名是否丢失取决于编译代码时的编译器选项.使用调试选项(-g)编译的代码在反编译时更具可读性.

当您进行反编译时,您将获得功能相同的源代码,但与源时的源代码不完全相同.

标签:java,decompiling
来源: https://codeday.me/bug/20190612/1222680.html