首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动资源释放的java技术?“提示清理”?

自动资源释放的java技术?“提示清理”?
EN

Stack Overflow用户
提问于 2011-07-09 02:14:15
回答 4查看 1.3K关注 0票数 1

我正在将一些C++代码移植到Java语言,这些代码使用了一个非常常见的C++技巧,即在堆栈上分配一个具有一些内部状态信息(这里是一个UDP套接字)的对象(它碰巧实现了一个UDP连接)。在作用域中,该对象用于做各种事情(发送和接收UDP消息)。好的是,当control离开这个作用域时,对象的析构函数将会运行,这会自动释放对象的内部资源(在这种情况下,我确保套接字关闭,这样我就可以在程序的其他部分重用它的地址和端口号)。

在试图弄清楚如何做到这一点时,我了解到Java没有析构函数,"finalize“不会做我想要的事情,等等。

当然,在Java中也有一些类似的聪明技术可以完成同样的事情?我意识到我可以添加一个"close()“方法,并尝试确保它总是在适当的时间被调用,而且我进一步意识到,这在Java语言中可能比在C++中更容易、更可靠。但我真的必须走那条路吗?

EN

回答 4

Stack Overflow用户

发布于 2011-07-09 02:18:50

我相信Java7支持Automatic Resource Block Management,这可能就是你想要的。

票数 2
EN

Stack Overflow用户

发布于 2011-07-09 02:19:42

在您的代码中有一个finally{}块,用于关闭连接并使其为空。这将使其符合垃圾收集的条件。这就是你所能做的。

票数 1
EN

Stack Overflow用户

发布于 2011-07-09 02:23:03

Java将自动清理没有引用的所有内容,以及所谓的“岛”,这是通过自动垃圾收集完成的。您可以随时建议JVM进行收集,但不能保证它会遵守。唯一的保证是,在JVM耗尽内存之前,它会尝试清理所有可以清理的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6628611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档