gpt4 book ai didi

java - 到底什么是资源泄漏?

转载 作者:行者123 更新时间:2023-11-30 03:36:34 27 4
gpt4 key购买 nike

我多次听到人们使用“资源泄漏”这个术语。我确信这是一个全局现象,尽管为了这个答案的目的,我将坚持使用 Java 中的内容。以下面的代码为例:

public void append(String text) throws IOException
{
BufferedWriter buffWriter = new BufferedWriter(new FileWriter("tf2rocks.imnotkidding", true));
buffWriter.write(event);
buffWriter.close();
}

在上面的代码片段中,存在资源泄漏,就好像 write() 抛出 IOException 一样,close() 将永远不会被召唤。

现在我的问题是:资源泄漏到底是什么?他们怎么能对我造成伤害?

如果每个java程序都在它自己的JVM实例中执行,在一个封闭的环境中,这些“资源泄漏”究竟会对我造成什么伤害?其他恶意程序是否有可能利用此漏洞?

最佳答案

实现 java.io.Closeable 的类(自 JDK 1.5 起)和 java.lang.AutoCloseable (自 JDK 1.7 起)被认为代表外部资源,当不再需要它们时,应该使用 close() 方法关闭它们。所有操作系统对套接字数量、文件句柄等都有限制。可以在特定时间打开。如果您不关闭资源,那么您就没有必要保持它们打开,如果您继续打开越来越多的资源而不关闭它们,那么一段时间后操作系统将无法分配更多资源。

关于java - 到底什么是资源泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com