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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/cfas/p/15095036.html