美文网首页
GC Root集合的理解

GC Root集合的理解

作者: 摸摸脸上的胡渣 | 来源:发表于2020-02-10 20:41 被阅读0次

拒绝简单的记忆,仔细想想为什么GC Root集合中都是这几类。

先看下周志明老师书中的概念


image.png

第一类,常量。
当一些变量的值不会变动,并且会频繁的使用时,就会将其直接声明成常量。优于其频繁使用的特性,所以常量不能被回收。

第二类,静态变量。
静态变量的生命周期与类的生命周期相同,只要类不卸载,静态变量也就会一直存在,所以也不能被回收。

第三类,栈中的变量。
栈中的变量都是我们正在使用的变量。当函数调用结束时,栈也会随之释放,栈中的变量也会被释放,只有这个时候,栈变量引用的空间,才能被回收。
JVM的标准中,有栈和本地方法栈,所以这两个栈中的变量引用着的对象,也不能被回收。

相关文章

  • GC Root集合的理解

    拒绝简单的记忆,仔细想想为什么GC Root集合中都是这几类。 先看下周志明老师书中的概念 第一类,常量。当一些变...

  • Java常见的GC Root

    我们知道Java 进行GC的时候会从GC root进行可达性判断,常见的GC Root有如下: 通过System ...

  • GC Root:

    www.jianshu.com/p/5db05db4f5ab www.jianshu.com/p/6ab2a0f7...

  • gc root

    一、oopMap oop (ordinary object pointer) 普通对象指针,oopmap就是存放这...

  • 什么是GC ROOT?有哪些GC ROOT?

    上⾯提到的标记的算法,怎么标记⼀个对象是否存活?简单的通过引⽤计数法,给对象设置⼀个引⽤计数器,每当有⼀个地⽅引⽤...

  • Gc Root对象

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

  • 垃圾回收

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

  • 二、GC ROOT

    jvm在判断对象是否还有用的时候,通常会从一些常见的地方开始进行搜索,只要对象不能从这些地方被引用到,就判断这些没...

  • GCRoots

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

  • G1 SATB和Incremental Update算法的理解

    着色标记 我们都知道cms gc 和g1 gc 的算法都是通过对gc root 进行遍历,并进行三颜色标记,具体标...

网友评论

      本文标题:GC Root集合的理解

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