CSDN学院讲师招募,诚邀您加入!博客Markdown编辑器上线啦PMBOK第五版精讲视频教程火星人敏捷开发1001问
JNA中内存处理-释放动态库中分配的内存(新)
分类:Java语言
前面已经介绍过一次JNA中内存释放方法,后经过实际分析,,这样写的代码不是很优雅,实际项目中代码实现方法如下:
如下是libvirt java binding实现代码存在内存泄露:
Libvirt.java
public String virConnectGetHostname(ConnectionPointer virConnectPtr);
Connect.java
public String getHostName() throws LibvirtException {String returnValue = libvirt.virConnectGetHostname(VCP);processError();return returnValue;}
如下是解决内存泄露的代码:
Libvirt.java
public Pointer virConnectGetHostname(ConnectionPointer virConnectPtr);
Connect.java
public String getHostName() throws LibvirtException {Pointer returnValue = libvirt.virConnectGetHostname(VCP);processError();if(returnValue == null) {return "";}else {String result = returnValue.getString(0);Native.free(Pointer.nativeValue(returnValue));return result;}}
上一篇pstack, coreadm and symbol tables下一篇一个可以work的Http Server示例
顶0踩0
主题推荐猜你在找
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
原来和文字沾上边的孩子从来都是不快乐的,