课程内容:
本课程是传智播客Java课堂系列之一,本课程全面介绍了JNI的知识,包括JNI的含义、功能和应用等。深入了解JNI的知识,掌握JNI的应用,包括在Java中如何调用C/C++本地代码及在C/C++本地方法中调用Java类等知识。
第1讲:本课程介绍JNI的含义、功能、最简单的Java调用C/C++代码的步骤和使用JNI的弊端,并按最简单的步骤编写在Java程序中调用本地代码的实例。内容包括:javah工具的用法、按照C/C++头文件来编写C/C++源文件、将C/C++源文件编译成动态连接库(DLL)、在Java程序中引入动态连接库等知识
第2讲:本课程讲解在被调用的C/C++函数中如何访问Java程序中的类,并编写应用实例。内容包括:在javah工具生成的C/C++函数声明中的JNIEnv类型参数和jobject类型参数的介绍、Java类型在C/C++中的映射关系、jclass类型的含义及取得、访问Java类中的属性与方法,以及使用javap工具获得属性和方法的签名。
第3讲:本课程讲解在被调用的C/C++函数中如何取得/设定Java属性值、如何调用Java类的方法和调用Java类的父类的方法,并编写应用实例。
第4讲:本课程讲解如何在本地代码中生成和操作Java的对象和字符串,并编写应用实例。内容包括:在C/C++本地代码中创建Java对象、在C/C++本地代码中访问Java的String对象、在C/C++本地代码中创建Java的String对象。
第5讲:本课程讲解如何在本地方法中处理Java的数组,包括处理基本类型数组和对象类型数组,并编写访问Java的基本类型数组和将数组值更新到Java中的实例程序。
第6讲:本课程讲解JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式,并编写两种缓存方式的示例代码。