关闭的是 本机 的cpu运算还是服务器的cpu运算 ,如果是关闭本机的内存空间的话 可以等java垃圾回收器自己回收资源吗?
close 关闭的是网络连接。 java gc 回收的条件 是没有引用的时候。跟 close 没有关系。 也就是说。如果没有引用。没有close 也会回收。但是最好在不使用的时候手动close. GC 回收的时间是不确定的。
java.sql.Connection.close()方法做的是立刻释放connection对象占用的数据库联接资源,而不是等到JVM的垃圾回收机制将其回收。并不是像我原以为的那样,close方法会简单地将conn对象设置为null。事实上,在调用close()之后,conn仍然不为null。
对一个为null的connection,调用close()方法会报空指针异常。
一般来讲是close方法是用来释放数据库连接用的,如果配的连接池 会将当前的连接释放到连接池中,方便下次业务操作使用
如果容器部署至服务器,那么就是创建在服务器中,链接对象保存在服务器内存中。close会关闭所有链接释放资源,内存中的链接对象遵循垃圾回收的算法。
https://www.2cto.com/database/201501/369246.html 看看这个
个人认为 不写close也没事 就是待等java垃圾回收器自己回收 但是回收机制是有时间的 并不是你不用了他就直接回收了
为了不产生更多不必要的麻烦 还是每次用完之后 将其手动关闭 释放资源 如果java回收机制可以随时回收人家java工程师 为啥要写这个close释放资源的方法呢
可以仿照tree菜单做啊,,那不是想要几层就有几层
https://blogs.oracle.com/weblogicserver/using-try-with-resources-with-jdbc-objects
官方解释.
如果不主动去close的话,如果一个程序中有多个方法调用jdbc而数据库连接池数量有限的话,其他地方的dao层会无法查询数据。
java.sql.Connection.close()方法做的是立刻释放connection对象占用的数据库联接资源,而不是等到JVM的垃圾回收机制将其回收。并不是像我原以为的那样,close方法会简单地将conn对象设置为null。事实上,在调用close()之后,conn仍然不为null。
对一个为null的connection,调用close()方法会报空指针异常。