gc回收算法及触发条件

回收算法

程序计数算法

给对象添加一个引用计数器,每过一个引用计数器值就+1,少一个引用就-1。当它的引用变为0时,该对象就不能再被使用。它的实现简单,但是不能解决互相循环引用的问题

可达性算法

  • 标记清理
  • 标记整理
  • 标记复制

gc root

  • 虚拟机栈(栈帧中的本地变量表)中引用的对象
  • 方法区中的类静态属性引用的对象
  • 方法区中的常量引用的对象
  • 本地方法栈中JNI(即Native方法)的引用的对象

gc触发条件

minor gc

  • eden内存不足

full gc

  • 元数据区内存不足
  • 老年代内存不足
  • System.gc()方法的调用
  • 其他
    • CMS GC时出现promotion failed和concurrent mode failure

你可能感兴趣的:(java,base,jvm)