A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 初升的晨曦 中级黑马   /  2014-6-20 11:29  /  1664 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java没有close的对象会被gc清理么?我看Apache的一些开源框架,自动close的对象都是在finalize中close的,但是要执行finalize必须gc决定要清理这个对象啊,没有close的对象在失去引用的情况下也会被gc么?????????

4 个回复

倒序浏览
好像是有些会,有些不会
回复 使用道具 举报
wyg129911 发表于 2014-6-20 12:03
好像是有些会,有些不会

能具体一些么?感谢
回复 使用道具 举报
  java的程序是由虚拟机操作的,而关闭程序时关闭的是虚拟机对象的操作,在IO流的时候会用到系统操作,.close是为了关闭系统操作而执行的。也就是说java程序必须在虚拟机上运行,而虚拟机则是为了让系统识别而存在的。
回复 使用道具 举报
      对与垃圾清理过程和内容不是非常了解,但finalize()用于清理对象时关闭资源对象。如果不这样做,那么对象被关闭后,该对象中的资源依然保持打开的状态,持续占用内存空间。
     简单说,主要还是看gc是否能判定回收该资源对象。还是那句话有的可以有的不会。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马