当前位置: 首页 > 知识库问答 >
问题:

此错误“资源泄漏扫描程序从未关闭”如何影响代码[重复]

陈成济
2023-03-14

我得到这个错误“资源泄漏输入从未关闭”我在网上看到了一些解决这个问题的方法,但我不愿意解决这个问题,除非它会影响程序的性能,因为代码运行良好

import java.util.Scanner;
public class Input {
public static double[][] Get_Ppe_Condition(int row,int col){
    Scanner input=new Scanner(System.in);
the rest of the code....

所以我的问题是,这种类型的错误是否会影响代码的运行,或者是否会影响结果的准确性?你们建议解决这个问题吗?解决这类错误的更好方法是什么?提前谢谢

共有1个答案

籍光熙
2023-03-14

Eclipse向您展示了这个错误,因为让资源保持打开状态通常是很糟糕的。

但是,在与扫描器相关的文件句柄和套接字的特定情况下,我不确定扫描器是否会覆盖finalize()方法,以便显式地清理您在这样打开资源时留下的混乱。让扫描器保持打开状态,会造成潜在的内存泄漏,即使GC最终解决了它,如果显式关闭扫描器,资源释放也会比等待GC快得多。出于某种原因,这些类型的资源通常包括close()destroy()shutdown()方法。

它会影响你代码的“准确性”或速度吗?不是在这个(简单的)案例中,但是如果你曾经专业地为一个复杂的项目编写草率的代码,你会让这个项目面临内存泄漏的风险,你可能不会在这个工作中持续很长时间。

你怎么修理它?照Takendarkk说的做,并在中添加。关闭()。如果你能通过一个简单的小动作避免这么多问题,为什么不去做呢?IBM的这篇文章更详细地讨论了这个问题。

 类似资料:
  • 资源泄漏:“扫描”永远不会关闭。 因此,我在代码末尾添加了来处理警告。 出现这个问题是因为我在同一个包中有其他类也使用scanner对象,而Eclipse告诉我分别关闭这些类中的scanner。然而,当我这样做时,它似乎关闭了所有的扫描器对象,并在运行时得到错误。 我遇到的一篇文章提到,当关闭时,我不能重新打开。如果是这种情况,我是否只需要确保一个带有System.in的扫描器对象在程序末尾关闭,

  • 我正在读取一个文件并将其内容存储在字符串中。代码给了我一个警告:Resource leak:。我如何解决它?

  • 我正在使用Eclipse,并执行下面的函数,碰巧我打开了一个扫描器,然后,最后我关闭了它,但Eclipse一直说它没有关闭“资源泄漏:'Scanner'没有关闭”。我可以用try with resources来完成,警告消失了,但我想知道为什么我在这里尝试的方式不起作用

  • 为什么Eclipse在下面的代码中给了我变暖的“资源泄漏:'in'从不关闭”?

  • 此代码导致资源泄漏: conin从未关闭 为什么会发生这种情况?我如何修复它?

  • 我正在编写一个程序,希望控制台输出用户输入的数字的剩余部分。但是,每次我编译代码时,控制台都会打印出来,我得到以下控制台错误: 我不确定控制台所说的“资源泄漏”是什么意思。我在几个不同的地方查找过它(包括API和其他堆栈溢出问题),我不确定为什么没有打印到控制台。我正在使用DrJava程序,以防有人想知道。 这里是我的代码供参考: