首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JNI之路径初探---6

    本篇文章讲解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,尽管"相同",但是会不同。

    02

    华为OD机试 ,简易内存池

    请实现一个简易内存池 根据请求命令完成内存分配和释放 内存池支持两种操作命令 REQUEST和RELEASE其格式为 REQUEST=请求的内存大小 表示请求分配指定大小内存 如果分配成功,返回分配到的内存首地址 如果内存不足,或指定的大小为零则输出error RELEASE=释放的内存首地址 表示释放掉之前分配的内存 释放成功无需输出 如果释放不存在的首地址 则输出error 注意: 内存池总大小为 100 字节 内存池地址分配必须是连续内存,并优先从低地址分配 内存释放后可被再次分配,已释放的内存在空闲时不能被二次释放 不会释放已申请的内存块的中间地址 释放操作只是针对首地址所对应的单个内存块进行操作,不会影响其他内存块

    03
    领券