Javap命令详解(定义作用及使用示例)

Javap命令详解(定义作用及使用示例)-mikechen

Javap命令经常用于JVM性能调优,下面我就重点详解Javap命令的作用,以及Javap命令的详细使用@mikechen

Javap命令定义

Javap 是一个用于反编译 Java 类文件的命令行工具,它可以将 Java 类文件转换成易于阅读的 Java 字节码指令。

 

Javap命令语法

javap命令的常用参数和用法,如下:

javap [ options ] [ classes ]

参数说明:

options :是 javap 命令的可选参数;

classes: 是需要反编译的 Java 类文件的类名;

下面是一些常用的选项:

  • -c:输出字节码指令;
  • -l:输出行号和本地变量表;
  • -verbose:输出类的详细信息,包括方法、字段、常量池等;
  • -classpath:指定类路径,用于查找需要反编译的类文件;
  • -version:显示 javap 命令的版本信息。

 

javap命令使用示例

1.Java代码

public class MyClass {
    private int myInt;
    
    public MyClass(int myInt) {
        this.myInt = myInt;
    }
    
    public int getMyInt() {
        return myInt;
    }
}

 

2.javac编译

可以使用 javac 命令编译成 MyClass.class 字节码文件。

命令:

javap -c MyClass

输出:

Compiled from "MyClass.java"
public class MyClass {
  private int myInt;

  public MyClass(int);
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."<init>":()V
       4: aload_0
       5: iload_1
       6: putfield      #2                  // Field myInt:I
       9: return

  public int getMyInt();
    Code:
       0: aload_0
       1: getfield      #2                  // Field myInt:I
       4: ireturn
}

 

3.查看类的详细信息

可以使用 -verbose 选项,查看类的详细信息。

命令:

javap -verbose MyClass

输出:

Classfile /path/to/MyClass.class
  Last modified Apr 

以上就是Javap命令的详解,更多性能调优,请查看:JVM性能调优的6大步骤,及关键调优参数详解

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法