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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖发腾 中级黑马   /  2012-3-30 18:39  /  2425 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在网上看到了一道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

1 个回复

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