目前,Java虚拟机采用”自适应的、分代的、停止-复制、标记-清扫“式垃圾回收器。
内存分配以较大的块为单位。每个块都有相应的代数来记录它是否还存货。有了块以后,垃圾回收器在回收的时候就可以往废弃的块里拷贝对象了。
停止-复制: 当有很多对象死亡,导致内存中产生大量碎片时采用该种策略
标记-清扫:当大部分对象都一直存活,只有少量对象死亡时采用该种策略
Java虚拟机会根据程序运行中的表现自适应地采用上述垃圾回收策略。
更加详细的介绍可以参考Oracle官网有关垃圾回收调节的文章介绍,网址是http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html。