Java字节码简介(Introduction to Java Bytecode)
本文为译文,原链接地址 Introduction to Java Bytecode ,首先感谢原文作者。 跟随本篇文章深入研究JVM内部结构和java字节码,你将会知道如何分解你的文件进行深入检查。 对于一个经验丰富的开发人员阅读java字节码也是非常枯燥的事情。首先我们要弄清楚我们为什么需要知道如此底层的东西?上周有一个能应用简单的场景:很早以前我作了代码修改,编译至jar包中并部署到服务测试一个潜在的性能问题。不幸的是修改的代码从未保存在版本控制系统,无论什么原因,本地修改的代码已消失的无影无踪。在几个月后,我再次需要原格式的修改的代码,但我已找不到了! 幸好编译后的代码还保存在服务器上,长舒一口气,我获取服务器的JAR并使用反编译工具打开。。唯一的问题:反编译工具GUI不是完美的,JAR中的许多类,只有我想反编译的那个特定类,UI打开时引起了bug,反编译器直接崩溃了! 绝望时孤注一掷,还好我属性原字节码,我宁愿再花些时间手动反编译一些代码而不去完成代码,再去测试它们。至少我还记得去哪儿查看代码,读字节码帮助我精确的找出修改的地方,把它们转换成源代码格式。 一旦你学会了字节码的语法,它可以应用到所有支持java的平台上——因为它是代码的中间的表现,不是最终通过底层cpu执行的代码。而且由于JVM结构相当的简单,字节码也比机器码简单,因此也是简化的指令集合