黑马程序员技术交流社区

标题: GC的问题 [打印本页]

作者: 李晓璐    时间: 2011-8-8 10:30
标题: GC的问题
JAVA 有没有不被回收的垃圾?
作者: 匿名    时间: 2011-8-8 18:13
标题: 回答
1.  自动性。Java技术提供了一个系统级的线程,即垃圾收集器线程,来跟踪每一块分配出去的内存空间,当Java 虚拟机处于空闲循环时,垃圾收集器线程会自动检查每一块分配出去的内存空间,然后自动回收每一块可以回收的无用的内存块。

2.  不可预期性。一个对象成为了垃圾,但是你不能断言,该对象在这行以后就立刻被清除,甚至有可能当程序结束后,该对象仍然占用内存。像Windows这样的软件常常会出现内存不足的情况,JAVA程序很少出现就是因为可以自动回收内存。然而,因为JAVA也不能保证及时地清除无用的对象,所以JAVA程序也会出现内存不足的情况,只是这种情况很少出现。垃圾收集线程在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来"建议"执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。
作者: 匿名    时间: 2011-8-9 00:37
我认为java里没有不被回收的垃圾,只要成了垃圾,一定会被回收的。只不过实际开发中初学者往往会忘记释放掉已经没有用的资源,比如创建了一个全局的Image对象,用完了不置为null,那么这个对象会一直存在于内存
作者: 匿名    时间: 2011-8-9 01:21
标题: 回复 沙发 的帖子
你走运了,评分竟然提交了两次:L
作者: 匿名    时间: 2011-8-10 06:16
[quote] 原帖由 [i]老罗[/i] 于 2011-08-09 01:21 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=7476&ptid=1104][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]你走运了,评分竟然提交了两次:L [/quote]哈哈,老罗怎么这么晚才睡啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2