JNI之路径初探---6

作者: markRao | 来源:发表于2017-06-24 22:57 被阅读40次

本篇文章讲解JNI下属性的内存释放问题,众所周知,JAVA有四大引用,1,强引用2,弱引用3,软引用4,虚引用。JNI有三大引用,1,普通全局引用2,弱全局引用3,局部引用。
1,Native方法执行完最后一行代码完毕后,方法内的所有局部对象全部自动释放内存。
2,弱、普通全局引用是跨线程、方法的,不同的是全局引用必须手动调用(env)->DeleteGlobalRef(env, 引用);才能释放内存,而弱全局适用于包装那些使用不频繁的属性,它是不稳定的,因为它不会阻止垃圾回收机制释放其内存,只要内存不够,弱引用就可能被释放。
3,引用的比较用(
env)->IsSameObject(env, obj_1, obj_2),特殊的一点如果比较的是NULL,NULL是JVM下的对象,如果你比对的对象是null,尽管"相同",但是会不同。

![清除局部变量内存.png](https://img.haomeiwen.com/i3027456/22e01444560b3e9c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • JNI之路径初探---6

    本篇文章讲解JNI下属性的内存释放问题,众所周知,JAVA有四大引用,1,强引用2,弱引用3,软引用4,虚引用。J...

  • JNI之路径初探---5

    本篇文章讲解JNI接收处理完从Java层传递的数据后内存的同步问题。 qsort是一个C语言的排序函数,这不是我们...

  • JNI之路径初探---3

    本篇简述如何在JNI下调用父类方法 这里讲一下如何拿到类中方法和属性的签名:1,cmd进入命令行2,cd 命令切到...

  • JNI之路径初探---4

    本篇文章讲解如何处理JNI下返回字符串乱码 代码比较简单,也不再详细说明,适合有C、C++和JNI基础的同学学习。

  • JNI之路径初探---1

    首先要明白,什么是JNI,我们做安卓开发为什么要学习JNI,学习JNI能干嘛?JNI全称Java Native I...

  • JNI之路径初探---2

    上一篇博客写的是Java调用C、C++的例子,本篇就演示一下C、C++怎么调用Java的属性和方法。

  • 初探JNI

    JNI搭建 1.下载ndk ,ndk大于r7则直接解压 2.eclipse 给定ndk 路径 3.新建项目后配置n...

  • JNI初探

    NDK产生背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java...

  • JNI系列入门之C语言与Java的双向通信(二)

    JNI系列文章:JNI系列之入门Hello JNI C(一)JNI系列之入门Hello JNI C(二)JNI系列...

  • JNI系列入门之Hello JNI C(二)

    JNI系列文章:JNI系列之入门Hello JNI C(一)JNI系列之入门Hello JNI C(二)JNI系列...

网友评论

    本文标题:JNI之路径初探---6

    本文链接:https://www.haomeiwen.com/subject/oajhcxtx.html