javap是一个Java类文件分解器,可以对其进行反编译,并显示Java编译器生成的字节码等。
javap命令参数
javap -help
使用方法: javap
其中,可能的选项是:
-help --help -? 输出此用法消息
-版本信息
-v -verbose输出附加信息
-输出l行号和局部变量表
-public仅显示公共类和成员
-显示受保护的/公共类和成员
-package显示软件包/受保护的/公共类
成员(默认)
-p -private显示所有类和成员
反汇编c代码
-s打印内部类型签名
-sysinfo是正在处理的类的
系统信息(路径、大小、日期、MD5散列) )。
-常数显示静态最终常数
-classpath指定搜索用户类文件的位置
-bootclasspath将重写引导类文件的位置
测试类:
公共类测试同步{
公共语音同步() {
同步(this ) {
system.out.println(sync );
}
}
}
使用命令反汇编javap-c测试同步
警告:二进制测试同步包含const Xiong.interview.test同步
compiled from ' test synchronized.Java '
publicclassconstxiong.interview.test synchronized {
publicconstxiong.interview.test synchronized (;
代码:
0: aload_0
1: invokespecial #8//method Java/lang/object.' : (v
4:返回
公共语音同步(;
代码:
0: aload_0
1:杜普
2: astore_1
3:监视器
4: get static # 15//field Java/lang/system.out : ljava/io/printstream;
7: ldc #21 //String sync
9: invokevirtual # 22//method Java/io/printstream.println : (ljava/lang/string; ) v
12: aload_1
1:监视器
14: goto 20
17: aload_1
183360监视器
19: athrow
2033 360返回
扩展表:
来自目标类型
4 14 17 any
17 19 17 any
}