Java|Java 之 javap 命令

问:你知道 Java 怎么查看字节码吗,具体怎么使用呢? 答:可以使用 JDK 提供的 javap 命令,javap 是 Java class 文件分解器,可以反编译(即对 javac 编译的文件进行反编译),也可以查看 java 编译器生成的字节码,用于分解 class 文件。
一般情况下,大家比较少见通过 javap 对 class 文件进行反编译,因为有很多成熟的反编译工具可以使用,比如 jad。但是 javap 还可以查看 java 编译器为我们生成的字节码,通过它可以对照源代码和字节码,从而了解很多编译器内部的工作。
其具体使用流程就是先得到编译后的 class 文件,然后通过 javap 命令直接查看 class 文件即可,具体参数细节和想要通过 javap 分析什么可以通过 help 查看,如下:

javap -help 用法: javap 其中, 可能的选项包括: -help--help-?输出此用法消息 -version版本信息 -v-verbose输出附加信息 -l输出行号和本地变量表 -public仅显示公共类和成员 -protected显示受保护的/公共类和成员 -package显示程序包/受保护的/公共类 和成员 (默认) -p-private显示所有类和成员 -c对代码进行反汇编 -s输出内部类型签名 -sysinfo显示正在处理的类的 系统信息 (路径, 大小, 日期, MD5 散列) -constants显示静态最终常量 -classpath 指定查找用户类文件的位置 -bootclasspath 覆盖引导类文件的位置

有了它你在很多时候就不用再和别人争得脖子脸通红了,对方和你争论有些写法或者问题时你只用 javap 分析下字节码实现,然后向对方脸上一甩,技能 plus++。
可以说 javap 不仅是很多情况下分析问题的利器,也是自己透过 java 代码研读背后实现的一个有利工具,务必掌握。
【Java|Java 之 javap 命令】推荐 javap,java 代码背后的真相只有一个!

    推荐阅读