栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用C/C++实现Java的Native方法接口(JNI)(4)JNI数据类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用C/C++实现Java的Native方法接口(JNI)(4)JNI数据类型

JNI编程(C/C++)

文章目录
  • JNI编程(C/C++)
    • 第1节:快速上手
    • 第2节:实例详解(C语言版本)
    • 第3节:实例详解(C++语言版本)
    • 第4节:JNI数据类型
    • 第5节:jstring类和jobject类的等对象数据的方法
    • 第6节:多种JNI数据类型的代码实例
    • 附录:代码

第1节:快速上手

一个简单的demo,快速跑通流程,详见使用C/C++实现Java的Native方法接口(JNI)(1)快速上手

第2节:实例详解(C语言版本)

本节针对第1节中的内例子详细说明(C),详见使用C/C++实现Java的Native方法接口(JNI)(2)实例详解(C语言版本)

第3节:实例详解(C++语言版本)

本节针对第1节中的内例子详细说明(C++),详见使用C/C++实现Java的Native方法接口(JNI)(3)实例详解(C++语言版本)

第4节:JNI数据类型

Java里的数据类型分为primitive、Object以及[]型的数组。

Java的8种基础数据类型与C基础数据类型在jni.h里的映射关系如下:

Java primitive typesC primitive typesJNI typedef
intlongjint
long_int64jlong
bytesigned charjbyte
booleanunsigned charjboolean
charunsigned shortjchar
shortshortjshort
floatfloatjfloat
doubledoublejdouble

此外,jni.h里也定义了java的Object类的映射关系,虽然Class、String、Throwable等的最终超类都是Object,但是由于比较常用,因此有单独的定义和操作方法

Java object typeC type (defined in JNI)JNI typedef
Object_jobject*jobject
Class_jclass*jclass
Throwable_jthrowable*jthrowable
String_jstring*jstring
[]_jarray*jarray

注意,此处的jarray不是Array类,Array类会被映射为普通的Object,而是原始的用[]定义的数组。

基础数据类型不用赘述,因为这些在C都有对应的原生类型,主要看对于Object类型的数据相关的方法

第5节:jstring类和jobject类的等对象数据的方法

本节详细描述了JNI中最常用的jstring(java.lang.String)和jobject (Obejct)的相关操作方法,详见使用C/C++实现Java的Native方法接口(JNI)(5)jstring类和jobject类的等对象数据的方法

第6节:多种JNI数据类型的代码实例

本节结合前面1-5节的内容,编写了一个包含多种数据类型的实例JNI-C++代码,详见使用C/C++实现Java的Native方法接口(JNI)(6)多种JNI数据类型代码实例

附录:代码

整个项目的资源打包链接:JNI_C/C++_Demo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号