JVM垃圾回可达性分析

垃圾回收可达性分析

解决了“引用计数算法”的循环引用问题。

GC roots

作为GC roots的对象包括下面几种(重点是前面4种)

  • 虚拟机栈(栈帧种的本地变量表)中引用的对象;
  • 方法区中类静态属性引用的对象;
  • 方法区中常量引用的对象;
  • 本地方法栈中JNI(即一般说的Native方法)引用的对象;
  • JVM的内部引用(class对象、异常对象NullPointException、OutofMemoryError、系统类加载器);
  • 所有同步锁(synchronized关键字)持有的对象;
  • JVM内部的JMXBean、JVMTI中注册的回调、本地代码缓存等;
  • JVM实现中的“临时性”对象,跨代引用的对象(使用分代模型回收,只回收部分代的对象);

你可能感兴趣的:(05-jvm,并发编程)