JVM入门(二)

五,GC概念

  • GC回收对象是堆空间和永久区
  • 标记清除算法--将垃圾回收分为两个阶段:标记阶段和清除阶段。
  1. 标记阶段:
    • 标记从根节点可达的对象
    • 根:(1)栈中的引用对象(2)方法区中的静态成员或常量引用的对象(3)JNI方法栈中的引用对象
  2. 清除阶段
    • 清除算法:直接清除未被标记的对象
    • 压缩算法:将存活对象重新移动到一起
    • 复制算法:将原有内存空间分为两个部分,每次使用一块,清除时,将存活对象移动到另外一块
  • 分代思想:
  1. 将对象分为新生代和老生代
  2. 少量对象存活适合复制算法,大量对象存活适合清理或压缩算法

六,GC收集器

是否在垃圾标记和清理时使用并行(多核处理器)

  • 串行收集器
  1. 效率高,可能会产生较长的停顿
  2. 新生代、老年代都使用串行回收
  3. 新生代复制算法,老年代压缩算法
  • 并行收集器
  1. ParNew,Parallel
  • CMS收集器--标记阶段是否并行
  1. 初始标记
  2. 并发标记
  3. 重新标记
  4. 并发清除

    

原文地址:https://www.cnblogs.com/ttkl90/p/6510680.html