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

 

posted @   方东信  阅读(702)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2018-08-03 SpringMvc+ajax跨域请求时,出现options类型的请求并返回403的解决方案
点击右上角即可分享
微信分享提示