JVM Knowleadge-垃圾回收GC Roots Tracing

来源:互联网 发布:数据库系统基础知识 编辑:程序博客网 时间:2024/06/15 12:47

本文参考了周志明的《深入理解Java虚拟机:JVM高级特性与最佳实践》,这本书写的非常好!极力推荐!》

JVM中对内存进行回收时,需要判断对象是否仍在使用中,可以通过GC Roots Tracing辨别。

定义:

通过一系列名为GCRoots”的对象作为起始点,从这个节点向下搜索,搜索走过的路径称为ReferenceChain,当一个对象到GCRoots没有任何ReferenceChain相连时,(图论:这个对象不可到达),则证明这个对象不可用。


可以作为GC Root 引用点的是:

  1. JavaStack中的引用的对象。
  2. 方法区中静态引用指向的对象。
  3. 方法区中常量引用指向的对象。
  4. Native方法中JNI引用的对象。
原创粉丝点击