NDK开发(二) :JNI的数据类型

转载请以链接形式标明出处:
本文出自:103style的博客


目录

  • 基本数据类型
  • 引用数据类型
  • JNI的数据类型描述符
  • 示例
  • 参考文章

基本数据类型

Java数据类型JNI本地类型C/C++数据类型数据类型描述
booleanjbooleanunsigned charC/C++无符号8位整数
bytejbytesigned charC/C++有符号8位整数
charjcharunsigned shortC/C++无符号16位整数
shortjshortsigned shortC/C++有符号16位整数
intjintsigned intC/C++有符号32位整数
longjlongsigned longC/C++有符号64位整数
floatjfloatfloatC/C++32位浮点数
doublejdoubledoubleC/C++64位浮点数

引用数据类型

Java的类类型JNI的引用类型
java.lang.Objectjobject
java.lang.Stringjstring
java.lang.Classjclass
Object[]jobjectArray
boolean[]jbooleanArray
byte[]jbyteArray
char[]jcharArray
short[]jshortArray
int[]jintArray
long[]jlongArray
float[]jfloatArray
double[]jdobleArray
java.lang.Throwablejthrowable
voidvoid

JNI的数据类型描述符

Java类型类型描述符
intI
longJ
byteB
shortS
charC
floatF
doubleD
booleanZ
voidV
其他引用类型L+类全名+;
数组[
方法(参数)返回值

示例

  • String 类

    Java 类型:java.lang.String
    JNI 描述符:Ljava/lang/String;
    即一个 Java 类对应的描述符,就是 L 加上类的全名,其中 . 要换成 / ,最后 不要忘掉末尾的分号。
    
  • 数组

    Java 类型:String[]
    JNI 描述符:[Ljava/lang/String;
    Java 类型:int[][]
    JNI 描述符:[[I
    数组就是简单的在类型描述符前加 [ 即可,二维数组就是两个 [ ,以此类推。
    
  • 方法

    Java 方法:long f (int n, String s, int[] arr);
    JNI 描述符:(ILjava/lang/String;[I)J
    Java 方法:void f ();
    JNI 描述符:()V
    括号内是每个参数的类型符,括号外就是返回值的类型符。
    

参考文章


以上

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值