“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样 "[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。

如果以一个L开头的描述符,就是类描述符,它后紧跟着类的字符串,然后分号“;”结束。

比如"Ljava/lang/String;"就是表示类型String;

"[I"就是表示int[];

"[Ljava/lang/Object;"就是表示Object[]。

JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下:

(参数描述符)返回类型

当一个函数不需要返回参数类型时,就使用”V”来表示。

比如"()Ljava/lang/String;"就是表示String f();

"(ILjava/lang/Class;)J"就是表示long f(int i, Class c);

"([B)V"就是表示void (byte[] bytes);

Java 类型 符号
Boolean Z
Byte B
Char C
Short S
Int I
Long J
Float F
Double D
Void V
objects对象

以"L"开头,以";"结尾,中间是用"/" 隔开的包及类名。比如:Ljava/lang/String;如果是嵌套类,则用$来表示嵌套。例如 "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"

另外数组类型的简写,则用"["加上如表A所示的对应类型的简写形式进行表示就可以了,

比如:[I 表示 int [];[L/java/lang/objects;表示Objects[],另外。引用类型(除基本类型的数组外)的标示最后都有个";"

例如:

"()V" 就表示void Func();

"(II)V" 表示 void Func(int, int);

"(Ljava/lang/String;Ljava/lang/String;)I".表示 int Func(String,String)

JNI字段描述符Ljava/lang/String;相关推荐

  1. JNI字段描述符[Ljava/lang/String

    http://blog.csdn.net/jintiaozhuang/article/details/9016889 JNI字段描述符"([Ljava/lang/String;)V" ...

  2. JNI字段描述符解析

    之前也遇到过Ljava/lang/String;@123403f 这种描述语言,但具体没有了解过.今天就详细说说这个JNI字段描述符. 个人对JNI理解下个定义:JNI是对程序运行时对参数类型为:基本 ...

  3. java字段描述符_Java 的方法签名与字段类型表示-[Ljava.lang.String;

    我们什么时候会接触到 Java 的方法签名呢?在进行 JNI 调用时,还有在看方法重载时.重载的方法是有不同的方法签名的,而是不区分返回值,而实际方法签名还揉入了返回值类型的,还有就是 javap - ...

  4. 【Java 虚拟机原理】Class 字节码二进制文件分析 四 ( 字段表数据结构 | 字段表详细分析 | 访问标志 | 字段名称 | 字段描述符 | 属性项目 )

    文章目录 前言 一.字段表总数据结构 二.访问标志 三.字段名称 四.字段描述符 五.属性项目数 前言 上一篇博客 [Java 虚拟机原理]Class 字节码二进制文件分析 三 ( 访问和修饰标志 | ...

  5. [Ljava.lang.String;@6d6f6e28 是什么意思

    文章目录 一.问题 二.初探 三.深入 一.问题 打印 String[] String[] strs = new String[]{"a", "b", &quo ...

  6. 关于高版本web3j调用okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody异常

    项目场景: 高版本web3j调用okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBod ...

  7. easyexcel 遇到的问题 org.terracotta.statistics.StatisticsManager.tags([Ljava/lang/String;)Ljava/util/Set;

    1.easyexcel 读取表格,必须注意ehcache的版本,不然会报org.terracotta.statistics.StatisticsManager.tags([Ljava/lang/Str ...

  8. AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V

    文章目录 问题描述 问题原因 解决方案 问题描述 在spring boot 2.2.2项目中,使用mybatis-spring-boot-starter,引入如下: <dependency> ...

  9. getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; is abstract解决

    今天在使用SpringBoot 和Mybatis-plus 连接SQL Server 生成代码的时候出现的问题: <!--sqlServer--><dependency>< ...

最新文章

  1. Properties类读写配置文件
  2. 2021-10-14 yolov5踩坑!!!经验大赏
  3. 独家 | creditR 的基于实践的导论:一个神奇的改良信用风险评分和验证的R包(附代码)...
  4. 想回家吗?先用腾讯刚上线的这个功能查一查!
  5. Shell变量命名规则
  6. 源码里查看Android版本
  7. io-同步 异步 阻塞 非阻塞
  8. 38 MM配置-采购-采购订单-采购订单审批-定义采购订单审批过程
  9. 第十二届全国大学生服务外包创新创业大赛总结
  10. 模型参数太多怎么办?用谷歌高效训练库GPipe啊
  11. Python程序-打印九九乘法表
  12. SystemMenu添加Item
  13. Redis设计与实现读后感
  14. 美观实用的BeautifulReport测试报告
  15. java 8 API 开发文档中文
  16. unity直播推流方式_干货,抖音无人直播技术(建议收藏)
  17. vray物理相机具体参数
  18. 【UE】BUILD ERROR: Missing precompiled manifest for ‘****‘.
  19. spoolsv病毒的清除
  20. 数据结构C++——二叉树的实现

热门文章

  1. 12 HDFS的Trash回收机制
  2. 2021年JAVA面试~初识集合Map(二)
  3. 配镜注意这三点,轻松解决上海配眼镜去哪里好难题
  4. 给对象做的暖心微信公众号推送(可自定义信息和天气预报的城市)
  5. mysql 8.064位安装_windows64位下MySQL8.0.15安装教程图文详解
  6. 电烙铁使用方法,diy套件
  7. 关于计算机网络各层协议
  8. Objective-C 【Category-非正式协议-延展】
  9. ***cgy学长爱吃糖果***
  10. Hadoop系列-Hadoop常用命令(五)