美文网首页
Gc Root对象

Gc Root对象

作者: 火山_6c7b | 来源:发表于2020-05-22 23:41 被阅读0次

1. gc root对象有那些

1.1解释

常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC roots且没有被GC roots引用的对象。

1.2列举

一个对象可以属于多个root,GC root有几下种:

  • 所有Java线程当前活跃的栈帧里指向GC堆里的对象的引用;换句话说,当前所有正在被调用的方法的引用类型的参数/局部变量/临时值。
  • VM的一些静态数据结构里指向GC堆里的对象的引用,例如说HotSpot VM里的Universe里有很多这样的引用。
  • JNI handles,包括global handles和local handles
(看情况)所有当前被加载的Java类
(看情况)Java类的引用类型静态变量
(看情况)Java类的运行时常量池里的引用类型常量(String或Class类型)
(看情况)String常量池(StringTable)里的引用
  • Class - 由系统类加载器(system class loader)加载的对象,这些类是不能够被回收的,他们可以以静态字段的方式保存持有其它对象。我们需要注意的一点就是,通过用户自定义的类加载器加载的类,除非相应的java.lang.Class实例以其它的某种(或多种)方式成为roots,否则它们并不是roots,.
  • Thread - 活着的线程
  • Stack Local - Java方法的local变量或参数
  • JNI Local - JNI方法的local变量或参数
  • JNI Global - 全局JNI引用
  • Monitor Used - 用于同步的监控对象
  • Held by JVM - 用于JVM特殊目的由GC保留的对象,但实际上这个与JVM的实现是有关的。可能已知的一些类型是:系统类加载器、一些JVM知道的重要的异常类、一些用于处理异常的预分配对象以及一些自定义的类加载器等。然而,JVM并没有为这些对象提供其它的信息,因此需要去确定哪些是属于"JVM持有"的了。

1.3 简言之

在Java语言中,可以作为GC Roots的对象包括下面几种:

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

总结就是,方法运行时,方法中引用的对象;类的静态变量引用的对象;类中常量引用的对象;Native方法中引用的对象。

相关文章

  • Gc Root对象

    1. gc root对象有那些 1.1解释 常说的GC(Garbage Collector) roots,特指的是...

  • 垃圾回收

    1、引用计数器 2、可达性分析 GC Root: Java语言中,可做为GC Root的对象有以下几种: 虚拟机栈...

  • GCRoots

    转载Java中什么样的对象才能作为gc root,gc roots有哪些呢? java的gc为什么要分代? 所谓"...

  • Java的GC机制

    判断哪些对象需要被GC 堆 方法区 可达性分析方法(Java使用):通过判断对象是否被GC Root 直接或间接引...

  • Java中的局部变量与GC root

    明确GC roots 我们知道,java中决定一个对象是不是会被回收要看它是不是还被gc root引用,gc ro...

  • 怎么解决引用计数 GC 的循环引用问题?

    作者:Android面试官 引用计数方式 GC 存在循环引用问题,导致无法辨别无用对象,而 GC ROOT 方式不...

  • CMS垃圾回收的7个重要阶段

    1.CMS-initial-mark 初始标记(CMS的第一个STW阶段),标记GC Root直接引用的对象,GC...

  • 实战:OutOfMemoryError异常(部分虚拟机启动参数)

    1.Java堆溢出: 思路:Java堆用于存储对象实例,只要不断地创造对象,并且保证GC Root到对象之间有...

  • 12.MAT使用说明

    MAT使用说明 1. 找到GC Root 2. 概念 Shallow HeapShallow Size是对象本身占...

  • 可作为GC Root的对象

    先看几个概念:线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。多线程:解决多任务同时执行的需求,合理...

网友评论

      本文标题:Gc Root对象

      本文链接:https://www.haomeiwen.com/subject/oxphahtx.html