Java和Jni类型对照表

Java和Jni类型对照表

  • 基本类型对照表

    Java的基本类型可以直接与C/C++的基本类型映射,基本类型的转换很简单。不过应注意下,转换成Native类型后对应数据类型的字长,例如char在java中占2个字节jchar在Native语言中也是占两个字节,这和普通的C语言中char占一个字节的情况是不一样。同时注意下,有些网站将byte和jbyte标记为无符号类型,这个是错误的,byte和jbyte都是有符号的。大家可以自己测试下结果

java类型 Native类型 符号属性 字长
boolean jboolean 无符号 8位
byte jbyte 有符号 8位
char jchar 无符号 16位
short jshort 有符号 16位
int jint 有符号 32位
long jlong 有符号 64位
float jfloat 有符号 32位
double jdouble 有符号 64位
  • 引用类型对照表 
java类型 Native类型
java.lang.Class jclass
java.lang.Throwable jthrowable
java.lang.String jstring
java.lang.Object[] jobjectArray
Boolean[] jbooleanArray
Byte[] jbyteArray
Char[] jcharArray
Short[] jshortArray
int[] jintArray
long[] jlongArray
float[] jfloatArray
double[] jdoubleArray

    除了Java中基本数据类型的数组、Class、String和Throwable外其余所有Java对象的数据类型在JNI中都可以用jobject表示。任何Java数组在JNI里面都可以使用jarray来表示,比如Java的int[]数组,用JNI可以表示为jintArray,也可以表示为jarray.

    参考:https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/types.html#wp9502

你可能感兴趣的:(android)