【问题标题】:How IDE releases resources?IDE如何释放资源?
【发布时间】:2013-08-03 07:28:38
【问题描述】:

当您处于调试状态时,所有现代 IDE 都有可能运行一些代码。 Intellij Idea 有“Watches”窗口,Eclipse 有“Expressions”窗口。有趣的是,如果我进行这样的调用(连接变量是 java.sql.Connection),如何清理资源:

connection.prepareCall("some sql function");

这会产生一个CallableStatment,可能会多次,但是什么时候它/它们会被关闭?还是这个 CallableStatment 会永远存在?

【问题讨论】:

    标签: java eclipse debugging resources intellij-idea


    【解决方案1】:

    如果 IDE 是用 Java 编写的,它将像任何其他 Java 对象一样运行:一旦它不再附加引用(例如通过输出到控制台但没有在任何地方保存引用),它就有资格成为垃圾收藏。

    【讨论】:

    • 您谈到了 POJO。如果这样的“对象”依赖于外部资源呢?比如你不能等到GC销毁ResultSet,因为与之关联的数据库资源会存在。这就是问题所在。
    • 除非你持有资源并手动释放它,否则你会泄漏,就像在 Java 中对外部分配资源的任何其他使用一样。如果对象有一个终结器,这可能会释放资源,但由于不能保证终结器的执行,无论如何您都可能泄漏资源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2012-05-04
    • 2016-02-03
    • 2015-03-29
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多