1、JNI 基本类型

当 Java 代码与本地代码 C/C++ 代码相互调用时,肯定会有参数的传递。两者属于不同的语言,数据类型有差别,此时,JNI 要保证两种语言之间的数据类型和数据空间大小的匹配。

比如:Java 中 char 类型占 2 个字节,int 类型占 4 个字节;但在 C 语言中,char 类型占 1 个字节,int 类型的长度与平台有关。

为了两种语言类型和长度的匹配,JNI 定义了新的数据类型。

JNI 与 Java 数据类型对应关系表
Java 数据类型 JNI 数据类型
boolean jboolean
byte jbyte
char jchar
short jshort
int jint
long jlong
float jfloat
double jdouble
所有引用类型 jobject

2、JNI 引用类型

在本地代码中为了访问 Java 运行环境中的引用类型,在 JNI 中也定义了一套对应的引用类型,

JNI 与 Java 引用类型对应关系表
JNI 引用类型 Java 引用类型
jobject 所有引用类型父类 Object
jclass java.lang.Class 类型
jstring java.lang.Class 类型
jarray 数组类型
jobjectArray 对象数组类型
jbooleanArray 布尔数组类型
jbyteArray 字节数组类型
jcharArray 字符数组类型
jshortArray 短整型数组类型
jintArray 整型数组类型
jlongArray 长整型数组类型
jfloatArray 浮点数组类型
jdoubleArray 双精度数组类型
jthrowArray java.lang.Throwadble 类型

最新文章

  1. 设计模式之合成/聚合利用原则(CARP)
  2. 浅谈P2P金融
  3. 6.bootstrap练习笔记-缩略图和list-group
  4. freeCodeCamp:Where do I belong
  5. 一道SQL面试例题 if...else 与聚集函数
  6. Plotting means and error bars (ggplot2)
  7. 错误处理--pure specifier can only be specified for functions
  8. springmvc的系统学习之配置方式
  9. loadrunner中lr_log_message和lr_output_message 的区别
  10. Java 输入流读取文本文件换行符问题
  11. linux多线程驱动中调用udelay()对整个系统造成的影响(by liukun321咕唧咕唧)
  12. SQL从入门到基础 - 05 数据分组、Having语句
  13. JavaScript 变量类型 保存内存中的位置 和 引用
  14. Wireshark入门与进阶系列(一)
  15. jquery prop和attr的区别
  16. 用CSS写气泡
  17. arm寄存器
  18. django 利用pillow 进行简单的设置验证码(python)
  19. Linux systemctl 命令完全指南
  20. TFT2.2

热门文章

  1. ansible入门三(Ansible的基础元素和YAML介绍)
  2. js 可拉伸表格
  3. socket的几个配置函数
  4. LeetCode OJ:Longest Increasing Subsequence(最长递增序列)
  5. LeetCode OJ:House Robber II(房屋窃贼II)
  6. PHP for循环的写法和示例
  7. Linux(CentOS 7) 新增或修改 SSH默认端口
  8. MoreEffectiveC++Item35 条款25 将constructor和non-member functions虚化
  9. 2018-2019-2 网络对抗技术 20165202 Exp6 信息搜集与漏洞扫描
  10. windows下类似Linux下的grep命令