论坛首页 综合技术论坛

一个java gc问题,请懂jvm内部实现的朋友点播

浏览 10026 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-27  
chenchao051 写道
RednaxelaFX 写道
System.runFinalization()做的就是逐个调用待finalize的对象上的finalize()方法。但这跟做GC与否一点关系都没有。


恩,我是完全忽略这方法的存在了。不知道R大有没有使用过这个方法做过确实那种有意义的操作。 不包括那种让对象起死回生的那种。

你是说用finalize()方法么?“有意义”的话…一次也没有。只有做实验的时候借它来说明问题有用。
0 请登录后投票
   发表时间:2012-02-27  
RednaxelaFX 写道
chenchao051 写道
RednaxelaFX 写道
System.runFinalization()做的就是逐个调用待finalize的对象上的finalize()方法。但这跟做GC与否一点关系都没有。


恩,我是完全忽略这方法的存在了。不知道R大有没有使用过这个方法做过确实那种有意义的操作。 不包括那种让对象起死回生的那种。

你是说用finalize()方法么?“有意义”的话…一次也没有。只有做实验的时候借它来说明问题有用。


恩,就是说的finalize 
0 请登录后投票
   发表时间:2012-02-27  
chenchao051 写道
内存就像监狱,挂掉的对象就像是被枪决的犯人,收集器就相当于把犯人拖出去的警察,finalizer最多就充当个传话筒,告诉警察谁谁谁被毙掉了,可以拖出去了,但是真正做事的警察可以不理你,甚至可以一直不理你。 另一方面,你关掉Gc,在这个比喻中,结果怎样你懂的。


这个比喻很形象啊,哈哈
0 请登录后投票
   发表时间:2012-02-27  
不知道 -Xnoclassgc 是不是你要的答案
0 请登录后投票
   发表时间:2012-02-28  
walnutprince 写道
不知道 -Xnoclassgc 是不是你要的答案


这个还真不是,简单来讲,-Xnoclassgc就是限制了class的unload,在那些会动态产生字节码的场合,用此参数很危险,permgen会被挤爆。 假如使用了动态语言,存在大量动态Load class的场景,那么,也很有可能会悲剧。
0 请登录后投票
   发表时间:2012-02-28  
我也想知道。求解。。。。
0 请登录后投票
   发表时间:2012-02-29  
i don't want to know how, but why.
0 请登录后投票
   发表时间:2012-02-29  
RednaxelaFX 写道
System.runFinalization()做的就是逐个调用待finalize的对象上的finalize()方法。但这跟做GC与否一点关系都没有。

+1
0 请登录后投票
   发表时间:2012-03-01  
覆盖System.gc()方法的实现为“什么也不行”应该可以吧。
0 请登录后投票
   发表时间:2012-03-01  
一切想以通过JAVA API来控制垃圾回收的行为都是耍流氓。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics