JNI_02_基本语法

来源:互联网 发布:尤克里里软件怎么调音 编辑:程序博客网 时间:2024/05/01 17:53

  • JNI_数据类型
    • JNI数据类型和java的对应关系
  • JNIEnv参数

JNI_数据类型

JNI数据类型和java的对应关系

c/c++中基本数据类型长度和java部分并不相同,在jni规范中统一转换方便使用。

类型映射表

java类型 本地类型 数据描述 boolean jboolean c/c++ unsigned 8 bits byte jbyte c/c++ signed 8 bits char jchar c/c++ unsigned 16 bits short jshort c/c++ signed 16 bits int jint c/c++ signed 32 bits long jlong c/c++ signed 64 bits float jfloat c/c++ 浮点 32 bits double jdouble c/c++ 浮点 64 bits Object jobject all Objects Class jclass Class Object String jstring String Object Object[] jobjectArray Object array jvalue 基本数据类型和引用类型的集合

在C语言中使用jni规范时,所有的引用类型都定义为 jobject 类型:
typedef jobject jclass;

类和接口的关系描述
java : java.lang.string
jni : java/lang/string

数组引用表示方式
java : int[] ; int[][] ;
jni : [I ; [[I ;

JNIEnv参数

JNIEnv是一个线程线程相关的变量,使c/c++可以访问虚拟机中的函数表,是jni的运行环境。
C语言中调用env

    (*env) -> FindClass(env,"java/lang/String");

C++中调用

    env -> FindClass(env,"jaca/lang/String");
0 0
原创粉丝点击