Java 为什么要使用st.close和con.close()?

Java 为什么要使用st.close和con.close()?,java,mysql,Java,Mysql,我是这个项目的新手,为什么在java中使用这个Connection.close()和Statement.close() 如果我没有使用这意味着会发生什么样的问题(错误) 我将尝试在不使用close方法的情况下在数据库中插入数据,它的插入看起来很好。那为什么要用这个 提前感谢…我建议您在发布问题之前先阅读一些标准Java,但不了解基本Java。 为了回答您的问题,Java文档告诉我们: 立即释放此语句对象的数据库和JDBC资源,而不是等待它自动关闭时发生这种情况。通常情况下,最好在使用完资源后立

我是这个项目的新手,为什么在java中使用这个
Connection.close()
Statement.close()

如果我没有使用这意味着会发生什么样的问题(错误)

我将尝试在不使用close方法的情况下在数据库中插入数据,它的插入看起来很好。那为什么要用这个


提前感谢…

我建议您在发布问题之前先阅读一些标准Java,但不了解基本Java。 为了回答您的问题,Java文档告诉我们:

立即释放此语句对象的数据库和JDBC资源,而不是等待它自动关闭时发生这种情况。通常情况下,最好在使用完资源后立即释放资源,以避免占用数据库资源


同样的情况也适用于如果您不关闭您的流,那么您所创建的被称为“资源泄漏”

垃圾收集器将无法释放流正在使用的资源,如果您没有使用该流,或者您丢失了对该流的引用(例如,将新流分配给前一个流变量引用),则这些资源将挂起


问题出现了,因为Java虚拟机没有无限的内存可供使用,而且每次创建的资源泄漏都会从JVM中占用更多的内存。所以,从本质上说,如果这些资源泄漏在应用程序运行时不断发生,那么JVM将面临内存不足的风险,这将导致崩溃,并显示OutOfMemory异常。显然,您不希望应用程序内存不足而崩溃,因此最好不要让流保持打开状态。

一旦您使用完资源,关闭它们是一种很好的编程实践,从长远来看,它会对您有所帮助。
至于你的问题,如果你不关注它会发生什么,它会继续消耗资源(套接字连接将保持打开,等等)。

最好先关闭
结果集
,然后关闭
语句
,然后关闭
连接
,并在finally块中执行此操作,以确保资源始终被释放

呃,因为Javadoc明确地说你必须关闭它们?@RGK我想要的是一个标准英语的易懂问题。在本例中,我还想知道为什么Javadoc中的一条清晰的语句不能让您满意,以及在您完成资源后发布资源有什么神秘之处。这个问题似乎是离题的,因为它根本没有显示任何研究。感谢您的澄清,。。