首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么反编译Java代码如此容易?

为什么反编译Java代码如此容易?
EN

Stack Overflow用户
提问于 2012-09-17 04:35:57
回答 2查看 7.3K关注 0票数 49

所以我才意识到反编译我的Java代码是多么容易。我一直在网上搜索,但我似乎弄不明白为什么这么容易。每次我用谷歌搜索“为什么我可以分解.class文件?”或者“为什么Java反编译如此容易”,我得到的都是指向可以轻松反编译代码的软件的链接。所以我转向你,StackOverflow:为什么Java可以转换回易于阅读的源代码,而C++和其他语言对反编译不是很友好?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-17 04:37:44

因为Java字节码比汇编更接近(更类似)源代码。

特别是,.class文件包括类名、方法名、字段和参数类型等元数据。

Java (或.Net)反编译器需要做的就是查看每个方法体中的指令,并将它们转换为适当的语法构造。

相比之下,像C++这样的本地语言根本不包含任何元数据,因此反编译器需要重新构建所有内容。

票数 58
EN

Stack Overflow用户

发布于 2012-09-17 04:39:01

Java被编译成一种中间形式,即JVM字节码,它保留了原始Java代码中包含的大量信息。像C++这样的语言被编译成汇编代码,看起来与原始代码有很大的不同,因此更难逆转。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12450510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档