混合编程jni 第四篇之引用和异常

Posted 香菜聊游戏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混合编程jni 第四篇之引用和异常相关的知识,希望对你有一定的参考价值。

系列目录:【混合编程Jni】 系列目录_香菜聊游戏的博客-CSDN博客

继续写JNI的知识点

上篇基本上介绍了数据的转换以及方法签名的相关知识点,不懂的可以看看之前的文章

建议循序渐进,不可冒进

今天继续介绍JNI的知识点

 除 八种 基本数据类型之外的都是引用数据类型 ;

关于引用

Java虚拟机的内存结构我们都知道,堆内存和堆外内存

大家都知道,Java代码创建的对象大多在堆内存内

Native 代码创建的对象,占用的内存在native 内存,

在混合编程的时候,对象有可能创建在Java侧,也有可能创建的native侧

但是在混合编程的时候需要做数据的传递,如果只是简单的拷贝就没什么问题

但是我们知道大对象拷贝起来性能很差,所以不能直接拷贝,还是谁创建,谁管理

但是JVM 是有gc 存在的,这个是自动回收,但是有可能在Native代码运行的时候导致对象被回收,而产生错误

因此存在几种引用对象

① 局部引用 Local Reference: 其只在作用域内有效 , 内存不可回收 ;

② 全局引用 Global References: 全局有效 , 内存不可回收 ;

以上是关于混合编程jni 第四篇之引用和异常的主要内容,如果未能解决你的问题,请参考以下文章

混合编程jni 第九篇之Jni总结

混合编程jni 第九篇之Jni总结

混合编程jni 第五篇之C++ 访问 Java代码

混合编程jni 第七篇之JNI 的命令行们

混合编程jni 第六篇之native 中字符串和数组的操作

混合编程jni 第五篇之C++ 访问 Java代码