java与c 交互_java与c之间的数据交互

本文详细介绍了Java与C/C++通过JNI进行数据交互的四种情况:基本数据类型的交互、Java向C传递对象、C向Java返回对象及C向Java传递对象数组。文中以具体的代码示例展示了如何进行对象方法调用、对象属性赋值及数组处理等操作。
摘要由CSDN通过智能技术生成

java与c/c++之间的数据交互—–jni点滴

最近作一个TIemsten数据库的项目,用到了jni技术。在这个项目中,我们用java来写界面和业务逻辑,用c语言写数据库odbc访问。单纯的odbc其实没有什么难的,但是在java和c之间进行数据传递是比较麻烦的事情。两者之间数据的传递有这样几种情况:java和c之间基本数据类型的交互,java向c传递对象类型,c向java返回对象类型,c调用java类。下面就这样几种情况分类说明。

1、java 向c传递基本数据类型

对于基本数据类型,java和c是相互对应的,所以可以直接使用。它们的对应关系为;

Java类型   本地类型   字节(bit)

boolean   jboolean   8, unsigned

byte    jbyte     8

char    jchar     16, unsigned

short    jshort     16

int     jint     32

long   jlong     64

float    jfloat    32

double jdouble    64

void    void    n/a

2.java向c传递对象类型

对于java传递进来的java对象模型,c要加载java类的原型,根据创建相应的c对象,获取java对象的方法的id,然后调用java对象的方法。举例说明:比如有个java类customer对象作为jni参数传递到c程序,customer有方法String getName()。

JNIEXPORT jobject JNICALL Java_com_oracl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值