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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴新钱 黑马帝   /  2011-8-6 09:27  /  1936 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们知道,Java中有一个gc方法来垃圾回收,可是平时的编程很少用到,什么时候需要自己进行垃圾处理呢

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2 谁来帮帮忙

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-8-6 10:41:34
沙发
垃圾收集器系统有自己的一套方案来判断哪个内存块是应该被回收的,哪个是不符合要求暂不回收的。垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使能明确地判断出有一块内存已经无用了,是应该回收的,但是也不能强制垃圾收集器回收该内存块。唯一能做的就是通过调用System. gc 方法来"建议"执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-6 11:35:46
藤椅

回复 楼主 的帖子

java语言的优势之一就是“垃圾自动回收机制”,在java中没有强制回收内存这一说法,垃圾收集器是定期会回收垃圾的,这是由这个语言本身所决定的,至于说gc这个方法只是照顾程序员的编程习惯而给出的,在c,c++中程序员都能强制回收内存,等发展到java语言了,一下子没了说不过去啊,所以sun公司说了,给一个建议性的gc吧,免的说三道四的.此方法仅仅建议而已,到点了该回收就回收,没到点你给出N个gc方法它还是不会回收,已经很给程序员面子了.

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-6 12:52:16
板凳
垃圾收集发生的有不可预知性,由于实现了不同的垃圾回收算法和采用了不同的收集机制,所以它有可能是定时发生,有可能是当出现系统空闲CPU资源时发生,也有可能是和原始的垃圾收集一样,等到内存消耗出现极限时发生,这与垃圾收集器的选择和具体的设置都有关系。所以在我们看到,明显需要处理垃圾的时候就可以调用gc方法来请求处理。

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马