黑马程序员技术交流社区

标题: 关于java垃圾回收机制的一道题 [打印本页]

作者: 肖发腾    时间: 2012-3-30 18:39
标题: 关于java垃圾回收机制的一道题
在网上看到了一道java认证的题目,关于java垃圾回收机制的。
在java基础和提高视频中没有讲过这些,想了解下,高手指点下
java垃圾回收的时间

题目如下:

  How can you force garbage collection of an object?
  A. Garbage collection cannot be forced
  B. Call System.gc().
  C. Call System.gc(), passing in a reference to the object to be garbage collected.
  D. Call Runtime.gc().
  E. Set all references to the object to new values(null, for example).

答案选 A
作者: 李井山    时间: 2012-3-30 18:55
在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾收集意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾收集也可以清除内存记录碎片。由于创建对象和垃圾收集器释放丢弃对象所占的内存空间,内存会出现碎片。碎片是分配给对象的内存块之间的空闲内存洞。碎片整理将所占用的堆内存移到堆的一端,JVM将整理出的内存分配给新的对象。
可以显示的调用System.gc()来要求垃圾回收,但回收不回收还得看虚拟机自己,我们不能保证调用System.gc()就会立即回收。




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