要理解 Java 字节码,比较推荐的方法是自己尝试编写源码对照字节码学习。其中阅读 Java 字节码的工具必不可少。虽然javap
可以以可读的形式展示出.class 文件中字节码,但每次改动源码都需调用命令行并不方便。这里介绍一个可以辅助阅读 Java 字节码的 Eclipse 插件:bytecode outline。
bytecode outline 插件用可读的方式展现了 Eclipse 的 Java 编辑器或类文件的字节码内容。它使用了 ASM 框 架的部分组建来实现对字节码的展示(ASM 框架在另外一篇操纵 Java 字节码的博文中有提到过:《AOP 实践:java.lang.instrument 的使用》,是一个轻量级的 Java 字节码的操纵框架。)。
插件安装
直接使用 Update manager 安装插件,非常简单:
Help -> Install new Software... -> Work with:
输入 url:http://andrei.gmxhome.de/eclipse/
然后在弹框中选择合适的版本即可。
使用
在 Eclipse 中添加相应的查看窗口:
Window -> Show View -> Other -> Java -> Bytecode
选中某 Java 源文件,效果如图:
同时,还可以使用同样的方法,添加 Bytecode Reference 窗口,用于查询各个 Java 字节码的文档,示例如下: