Java虚拟机中描述类型和方法有固定的描述符和Java语法中所所用的完全不一样,比如int应当表示为i,表示一个java类名,如:java.lang.Object类在虚拟机中应该使用java/lang/Object,表示引用对象应当使L类名;如:Object obj应当使用Ljava/lang/Object;表示,表示成员方法时候应当使用(参数类型描述符)返回值,如:void main(String[] args)应当使用([Ljava/lang/String;)V表示,表示数组使用[类型描述符,如int[]应当使用[i表示,表示构造方法名称应当使用<init>表示。

    类型描述符表

    描述符 Java类型 示例
    B byte B
    C char C
    D double D
    F float F
    I int I
    J long J
    S short S
    Z boolean Z
    [ 数组 [IJ
    L类名; 引用类型对象 Ljava/lang/Object;


    方法描述符示例**

    方法示例 描述符 描述
    static{...}static int id = 1; 方法名:<clinit> 静态语句块/静态变量初始化
    public Test (){...} 方法名:<init>,描述符()V 构造方法
    void hello(){...} ()V V表示void,无返回值
    Object login(String str) {...} (Ljava/lang/String;)Ljava/lang/Object; 普通方法,返回Object类型
    void login(String str) {...} (Ljava/lang/String;)V 普通方法,无返回值