java的垃圾回收机制是完全不可控的,但调用System.gc()后不就会清理内存了吗

tpos 2010-06-09 01:58:22
这两件事不矛盾吗?调用System.gc()后java垃圾回收器不就是可控的了吗?
...全文
485 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cainiaoxuexi 2010-06-25
  • 打赏
  • 举报
回复
这个System.gc()函数的作用只是提醒虚拟机,但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具体的虚拟机的,不同的虚拟机(对应的os不同等)有不同的对策。
fantasy471503202 2010-06-24
  • 打赏
  • 举报
回复
恩,对虚拟机垃圾回收的时间问题也是颇有疑问。
ronniegxq 2010-06-24
  • 打赏
  • 举报
回复
调用gc的时候不一定回收,不调用gc的时候不一定不回收
xiangchang224 2010-06-24
  • 打赏
  • 举报
回复
调用gc的时候不一定回收,不调用gc的时候不一定不回收。
你可以看看http://www.javaeye.com/topic/695362
space_Wind 2010-06-10
  • 打赏
  • 举报
回复
有句话是这样的,调用gc的时候不一定回收,不调用gc的时候不一定不回收。
西北地的风 2010-06-10
  • 打赏
  • 举报
回复
System.gc()只是在回收的时候会进行此清理动作,回收的时机不由gc()决定,而由JVM的算法决定
ZangXT 2010-06-09
  • 打赏
  • 举报
回复
System.gc()可以屏蔽掉的。
龙四 2010-06-09
  • 打赏
  • 举报
回复
System.gc()是提醒作用!


就好比你妈妈叫你该写作业,这是提醒,至于你写不写,你妈妈不会管你的
wuyaowen2000 2010-06-09
  • 打赏
  • 举报
回复
System.gc()只是建议回收,实际回收与否看运气了
rmouse_2005 2010-06-09
  • 打赏
  • 举报
回复
System.gc()只是通知要垃圾回收了,但是并没有即刻进行垃圾回收
focusforce 2010-06-09
  • 打赏
  • 举报
回复
《深入JVM》里不知道是否有详实描述。
看看API关于System.gc()的说明:运行垃圾回收器。
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。

设置比较合理的xms和xmx,避免内存泄露,才是控制内存的好办法。

%java_home%\demo\management\ 下面的demo可以看看,展示了对内存的一些管理活动。
「已注销」 2010-06-09
  • 打赏
  • 举报
回复
调用 System.gc 也仅仅是通知而已
要等虚拟机觉得需要执行时才执行
wutian4567268 2010-06-09
  • 打赏
  • 举报
回复
调用System.gc()后也不是立即执行回收,有可能不回收

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧