javazhujf 2008-11-20 13:46
浏览 187
已采纳

关于java读取文件或连接数据库的资源问题

Java操作文件的时候,是创建相应的对象,利用这个对象来打开和关闭文件。

我想知道当打开文件后只消耗JVM的资源吗(创建的java对象),

还是同时也消耗操作系统的资源,如果JVM突然down掉资源能被释放吗



还有同样,java利用连接DB的时候,

那么DB端会产生相应的连接对象,

这时候JVM突然down掉,那么DB端并不知道,这个连接对象也不会被释放,

那么只有等到超时才能被释放吧
问题补充

lifethinker 写道
对于文件资源,当然耗操作系统资源,并且由操作系统来管理,当JVM突然崩溃,操作系统会回收这个进程的所有资源,当然也包括文件资源。



对于DB Connection,JVM突然崩溃,DB Server是有办法知道的,最起码它知道Socket连接断开了,数据库连接依赖于它。我测试过Oracle和MySQL的连接,对Oracle的连接,如果不调用Connection.close()方法,即使Socket连接断开了(比如JVM退出),服务器端是不会关闭数据库连接的,但是它设置有超时时间。对MySQL的连接,一旦Socket连接断开,服务器端就会自动关闭数据库连接。





sdh5724 写道
大学学过操作系统了么?


你能告诉和操作系统的哪部分相关吗,我去补课!





非常感谢你的回答,从你那学到了google搜不到的东西。



  • 写回答

5条回答 默认 最新

  • iteye_10624 2008-11-20 13:46
    关注

    对于文件资源,当然耗操作系统资源,并且由操作系统来管理,当JVM突然崩溃,操作系统会回收这个进程的所有资源,当然也包括文件资源。

    对于DB Connection,JVM突然崩溃,DB Server是有办法知道的,最起码它知道Socket连接断开了,数据库连接依赖于它。我测试过Oracle和MySQL的连接,对Oracle的连接,如果不调用Connection.close()方法,即使Socket连接断开了(比如JVM退出),服务器端是不会关闭数据库连接的,但是它设置有超时时间。对MySQL的连接,一旦Socket连接断开,服务器端就会自动关闭数据库连接。

    [quote="sdh5724"]大学学过操作系统了么?[/quote]
    你能告诉和操作系统的哪部分相关吗,我去补课!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料