JNI的数据类型及映射关系详解

本文详细介绍了JNI,包括其简介、技术原理、基本数据类型及其与Java数据类型的映射关系,以及JNI中的String类型。此外,文章讨论了JNI的两个主要优点:解决本机平台接口调用问题和在嵌入式开发中的应用。同时,还深入讲解了局部引用、全局引用和弱全局引用的概念和管理。最后,文中强调了理解并掌握JNI底层原理对于提升开发者技术水平的重要性。
摘要由CSDN通过智能技术生成

JNI简介

JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植;从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互

本地代码与 Java 虚拟机之间是通过 JNI 函数实现相互操作的;JNI 函数通过接口指针来获得,本地方法将 JNI 接口指针当作参数来接受;虚拟机保证在从相同的 Java 线程中对本地方法进行多次调用时,传递给本地方法的接口指针是相同的,本地方法被不同的 Java 线程调用时,它接受不同的 JNI接口指针

使用JNI和算法进行交互,主要是为了提高算法的性能,最大化的利用机器硬件资源

JNI技术原理

JNI是Java NativeInterface(Java本地接口)的缩写;JNI作为java和操作系统间的一个直接接口,可以通过JNI使得java直接调用操作系统的资源

目前JNI只能通过c/C++实现,因为jni只是对操作系统资源调用的一个桥接过程;所以理论上在windows下只要是dll文件均可以被调用;java代码编译之后是运行在一个jvm里,所以java的任何操作对操作系统而言都是隔着一层虚拟机外壳,这点也正是java的优点,帮助java实现了“Write Once, Run Everywhere”的可移植性

但是使用了jni之后必须要明白这个“Write Once, Run Everywhere”要被打破,必须要实现不同的操作系统的各种jni版本

JNI的开发调用过程可以用下图来完整表示:

JNI 基本数据类型

JNI中数据类型分为两种,一种是基础数据类型,另一种是引用类型;在调用Java native方法将实参传递给C/C++函数的时候,会自动将java形参的数据类型自动转换成C/C++相应的数据类型,所以我们在写JNI程序的时候,必须要明白它们之间数据类型的对应关系;下面先介绍基础数据类型

JNI中的基本类型也称为Native基本类型

Java基本数据类型与JNI数据类型的映射关系如下:

Java数据类型 JNI数据类型 C/C++数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值