Java 字节码(Bytecode)是连接源代码与 JVM 执行的中间桥梁。无论是为了深入理解 Java
编译机制、进行性能调优,还是研究某些高级特性,掌握查看字节码的方法都是一项非常实用的技能。字节码文件(.class)是二进制格式,无法直接阅读,下面介绍三种主流的查看方式。

方法一:使用 JDK 内置的 javap 命令
这是最基础、最直接的方式,无需任何外部工具。javap 是 JDK 自带的类文件反汇编器。

基本用法:

bash
javap -c 完整类名.class
示例:

bash
$ javap -c java.lang.String
执行后,控制台会输出 String 类所有方法的字节码指令序列。-c 选项表示输出分解后的代码(即字节码指令)。你还可以结合
-v(verbose,输出更详细信息)或 -p(显示私有成员)等参数使用。

方法二:在 IntelliJ IDEA 中直接查看
IntelliJ IDEA 内置了字节码查看器,使用起来非常方便。

确保当前类已编译。

在菜单栏选择:View(视图) -> Show Bytecode(显示字节码)。

一个新的工具窗口将打开,显示当前活动类的字节码。

https://img/20191205114156.png
IntelliJ IDEA 查看 String 类的字节码

这种方式可视化效果好,并且与源码导航结合紧密。

方法三:为 Eclipse 安装 Bytecode 插件
Eclipse 默认不提供此功能,但可以通过安装插件实现。

安装插件:通过 Help -> Install New Software,添加站点 http://andrei.gmxhome.de/eclipse,找到 “Bytecode” 插件并安装,重启
Eclipse。

打开视图:安装后,通过 Window -> Show View -> Other…,在 Java 分类下找到 Bytecode 视图并打开。

查看字节码:在编辑器打开一个类文件,Bytecode 视图便会同步显示其字节码。

https://img/20191205134934.png
Eclipse 配合插件查看字节码

小结
以上三种方法覆盖了命令行、主流 IDE 等多种场景。javap 命令最为通用和强大;IntelliJ IDEA 的方案最便捷;Eclipse
则需要一点额外的配置。理解字节码能让我们从更底层的视角审视代码,是进阶 Java 开发的必修课。