JVM 中的 GC Roots 和可达链
JVM GC
2023-09-14 09:07:23 时间
什么是GC Root 对象?
简单讲,凡是被常量、静态变量、全局变量、运行时方法中的变量直接引用的对象,原则上不能被GC释放。
JVM中对内存进行回收时,需要判断对象是否仍在使用中,可以通过 GC Roots Tracing辨别。
GC Roots 定义:
通过一系列名为”GCRoots”的对象作为起始点,从这个节点向下搜索,搜索走过的路径称为ReferenceChain,当一个对象到GCRoots没有任何ReferenceChain相连时,(图论:这个对象不可到达),则证明这个对象不可用。
可以作为GC Root 引用点的是:
JavaStack中的引用的对象。
方法区中静态引用指向的对象。
方法区中常量引用指向的对象。
Native方法中JNI引用的对象。
所谓“GC roots”,或者说tracing GC的“根集合”,就是一组必须活跃的引用。
Tracing GC的根本思路就是:给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可到达的)对象就被判定为存活,其余对象&#x
相关文章
- JVM 内存结构基于JDK1.8【JVM篇三】
- JVM-年轻代、老年代学习
- 究竟什么是Java虚拟机(JVM)?
- 几种常见的JVM调优场景(建议收藏)
- 既然 JVM 有 Full GC,为什么还会出现 OutOfMemoryError?
- JVM面试题详解
- JVM 面试基础准备篇(一)
- 图解JVM实验-触发FullGC的几个条件
- 看一看JVM垃圾回收算法
- JVM - 垃圾回收篇笔记
- JVM-栈帧中的方法返回地址(return address)
- 理解JVM——类加载机制详解编程语言
- 最详细的JVM&GC讲解
- 使用JVM在Linux系统中执行多线程操作(jvm线程linux)
- 如何在Linux下修改JVM参数配置(linux修改jvm参数)
- Oracle GC关闭实施指南(oracle关闭gc)
- Oracle控制下的JVM开启新的技术时代(jvm受oracle控制)
- Oracle提升服务器性能的GC软件(gc软件 oracle)
- 组件Oracle 数据库 GC 组件更高级别的资源管理(oracle中的gc)
- Oracle JVM安装指南(oracle jvm安装)
- 安装Oracle数据库GC的指导(oracle gc安装)
- Oracle GC安装指南极速安装享受无限开发乐趣(oracle gc安装)