zoukankan      html  css  js  c++  java
  • jvm java 方法描述符的解析

    ()V
    (D)Ljava/lang/Double;
    (Ljava/lang/Object;)V
    (ILjava/lang/String;DFZ)V
    (D)Ljava/lang/Double;
    (D)Ljava/lang/Double;
    (I)Ljava/lang/Integer;
    ()J

    在解析class文件中的方法时,会解析出上面的字符串,每一行代表描述一个方法的入参类型,数量和返回值

    基本规则

    (这里的是方法的参数)这里的是方法的返回值

    栗子:

    int test(int a)

    解析出来是

    (I)I

    int test(int a,double x)

    解析出来是

    (ID)I

    上面的栗子用的是基本的数据类型,如果是类-类型(引用类型)就是这样

    栗子

    int test(int a,String s)

    解析出来是

    (Ijava/lang/String;)I

    是不是超简单啊?来吧 贡献代码吧。。。

    https://github.com/anons-org/nada

    数据类型在JVM中的定义

    B byte
    C char
    D double
    F float
    I int
    J long
    S short
    Z boolean
    V void
    L 对象类型,如Ljava/lang/Object

    对于数组类型,每一个维度都是使用一个前置的"["字符来描述,如 [Ljava/lang/String , 或者 [[I

    博主教你手撸JVM 开源项目
    https://github.com/anons-org/nada
    https://gitee.com/grateful/nada

    博主长期对外收徒,欢迎咨询。
    《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》 以上课程非诚勿扰!



    =================================
    QQ:184377367
    GOLang Q群:6848027
    电子电路入门群 436173132
    C/C++/QT群 1414577
    单片机嵌入式群 306312845
    MUD/LIB/巫师交流群 391486684
    java/springboot/hadoop/ 群 4915800
    WEB前端开发交流群 214737701
    操作系统研发群:15375777
    Linux公社Q群:812742841
    汇编/辅助/破解新手群:755783453
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    [译]git reflog
    [译]git rebase -i
    [译]git rebase
    [译]git commit --amend
    [译]git clean
    [译]git reset
    [译]git revert
    [译]git checkout
    [译]git log
    [译]git status
  • 原文地址:https://www.cnblogs.com/cfas/p/15095036.html
Copyright © 2011-2022 走看看