编译与反编译

编程语言分为低级语言和高级语言)。其中机器语言和汇编语言属于低级语言,直接用计算机指令编写程序,而C、C++、Java、Python等属于高级语言,用语句编写程序,语句是计算机指令的抽象表示。

低级语言是计算机认识的语言、高级语言是程序员认识的语言。

所谓的编译,就是将高级语言翻译成计算机能识别的低级语言的过程,而反编译则是将已经编译好的语言还原成未编译高级语言的过程。

针对于Java语言的编译,是将.java源文件通过javac编译器编译成.class字节码文件。字节码文件并不能由计算机直接识别,需要借助JVM内嵌的解释器解释成机器语言后执行。而Java语言的反编译,指的是将.class字节码文件还原成近似java源代码文件。此处近似是指反编译得到的是常量优化之后的代码。反编译工具有很多,例如jad。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 记录一下看了Java开发必会的反编译知识后关于Java的编译、反编译、字节码、源代码、机器码的note,目录如下,...
    chenfh5阅读 4,560评论 0 0
  • 编译 编程语言有高级和低级之分。所谓低级语言就是指可以被计算机理解并执行的语言,例如机器语言。而高级语言计算...
    still_loving阅读 5,733评论 0 4
  • 编译:将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序的过...
    雪域飞鸿阅读 3,106评论 0 0
  • 精英成长淘猫妈 一个小宝宝长成大孩子,最后长成大人,再到最后老去,哪个没受过伤?哪个没生过病?大多数的人还不是平安...
    苦茶_09e4阅读 1,094评论 0 0
  • 昨晚上,一个人泡个明前茶,一边看手机,一边慢品茶。 突然,手机上跳出一行字:后背膀胱经痛。 一看...
    中医微尘阅读 3,173评论 0 9

友情链接更多精彩内容