摘要:
1.Serial收集器 进行垃圾收集时,需要暂停其他所有的工作线程(Stop the world),知道它完成收集工作。暂停所有工作线程带来不良的用户体验,但由于其简单而高效,Client模式下的虚拟机仍然是个很好的选择。2.ParNew收集器 Serial收集器的多线程版本,是许多运行在Ser... 阅读全文
摘要:
1.标记-清除算法 算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 标记过程在对象死了吗中已经介绍过。 该算法主要存在两个问题:1.效率问题,标记和清除两个过程都效率不高;2.标记清除后会产生大量不连续的内存碎片。2.复制算法 将内存... 阅读全文
摘要:
垃圾收集器在对堆进行回收前,需要先判断堆中哪些对象是“活着”的,哪些对象是“死了”的。1.引用计数法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器加1,当引用失效时,计数器减1。任何时刻计数器为0的对象就是不可能再被使用的。 引用计数器实现简单,效率高。但是主流的JVM并没有使用引用... 阅读全文