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

资源泄漏测试

陶健
2023-03-14

我试图理解不对任何流调用close()会如何影响系统的性能和功能。为了做到这一点,我创建了下面的测试类。

public static void main(String[] args) throws Exception {

      int loopCount = 1000000;
      for (int i = 0; i < loopCount; i++) {

        PrintWriter writer = new PrintWriter("C:/files/the-file-name" + i +".txt", "UTF-8");
        writer.println("The first line");
        writer.println("The second line");
        writer.close();
        FileInputStream is = new FileInputStream("C:/files/the-file-name" + i +".txt");
    }
}

共有1个答案

梁兴文
2023-03-14

大多数流都有一个finalize()方法,该方法将为您关闭它们,因此在此代码中,当变量在循环的每次迭代中超出范围时,流可以被GC并自动关闭。

这并不意味着您不应该小心释放资源。只是个安全措施。

 类似资料:
  • Eclipse Java警告:资源泄漏:“Unassigned Closeable Value”从不关闭 漏在哪里?

  • 大家晚上好。我是一个使用Java编程的完全初学者,我正在学习“扫描仪”,但是当我在Eclipse中键入这个基本代码时,我收到一条消息说“资源泄漏:‘扫描仪’永远不会关闭。 我做错了什么?

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

  • 大家好,我的程序员们。 我有一些代码,spring工具套件编辑器的反应也不一样,也许你们一些聪明人知道为什么。 有人能告诉我为什么这是不可能的吗: 但这是!? 第一行代码给了我一个警告“Resource leak:unassigned closeable value is never close”,正如您所看到的,我在try/catch中使用了一个finally,如果对象不为空,它应该总是关闭对象

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

  • 我是个新手。我已经编写了这段代码,它显示那里存在资源泄漏 这是什么意思?抱歉,我太天真了。