(1)垃圾回收器的工作目标是回收已经无用的对象的内存空间,从而
避免内存渗漏体的产生,节省内存资源,避免程序代码的崩溃
(2)垃圾回收器判断一个对象的内存空间是否无用的标准是:如果该对象不能在被程序中任何一个"活动的部分"
所引用,此时我们就说,该对象的内存空间已经无用.所谓"活动的部分",是指程序中某部分参与程序
的调用,正在执行过程中,尚未执行完毕.
(3)垃圾回收器线程是一种低优先级的线程,在一个Java程序的生命周期中,它只有在Java虚拟机空闲的时候
才有机会运行.但在系统可用内存量过低的时候,它可能会突发第执行来挽救内存资源.当然其执行与否也是不可预知的;
(4)垃圾回收器不可被强制执行,但程序员可以通过调用System.gc()方法来建议执行垃圾回收器.也可以通过
将对象的引用变量初始化为null值,来暗示垃圾收集器来回收该对象;
(5)不能保证一个无用的对象一定会被垃圾回收器回收,也不能保证垃圾回收器在一段Java语言
代码中一定会执行.因此在程序执行过程中被分配出去的内存空间可能会一直保留到该程序执行完毕.
由此可见,完全彻底地根绝内存渗漏体的产生也是不可能的.
(6)垃圾回收器只负责回收对内存中的对象,不会回收任何物理资源(例如:数据库的连接,
文件输入输出流等);
|
|