javap指令

javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码。通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作。
用法: javap <options> <classes>
其中, 可能的选项包括:
  -help  --help  -?        输出 javap 的帮助信息
  -version                 版本信息
  -v  -verbose             输出堆栈大小、各方法的 locals 及 args 数,以及class文件的编译版本
  -l                       输出行号和局部变量表
  -public                  仅显示公共类和成员
  -protected               显示受保护的/公共类和成员
  -package                 显示程序包/受保护的/公共类和成员 (默认设置)
  -p  -private             显示所有类和成员
  -c                       对字节码进行反汇编,输出类中各方法的未解析的代码,即构成 Java 字节码的指令。
  -s                       输出内部类型签名
  -sysinfo                 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
  -constants               显示最终常量
  -classpath <path>        指定查找用户类文件的位置
  -cp <path>               指定查找用户类文件的位置
  -bootclasspath <path>    覆盖引导类文件的位置

如:已经有个Test.class文件,则javap -c test

uniwinmatoMacBook:desktop uniwin$ javac Test.java

uniwinmatoMacBook:desktop uniwin$ javap -c Test

Compiled from "Test.java"

public class Test {

  public Test();

    Code:

       0: aload_0

       1: invokespecial #1                  // Method java/lang/Object."<init>":()V

       4: return


  public static void main(java.lang.String[]);

    Code:

       0: new           #2                  // class SubCaller

       3: dup

       4: invokespecial #3                  // Method SubCaller."<init>":()V

       7: astore_1

       8: aload_1

       9: invokeinterface #4,  1            // InterfaceMethod Caller.call:()V

      14: return

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值