垃圾回收算法和 GC Roots 的对象

判断对象是否要回收有两种算法, 引用计数法和可达性算法。无论哪种都离不开引用,下面将介绍 Java 语言的四种引用。
众所周知,Java 语言的 JVM 垃圾回收机制,用可达性分析算法来判断堆里的对象是否正在使用。
可达性分析算法是从 GC ROOTS 开始,逐级扫描对象引用链,来筛选出不在引用链上(无用)的对象,扫面结束后,回收掉无用的对象占用的空间。

垃圾回收中,GC Roots 对象分下面2大类

(1)栈

虚拟机栈中引用的对象

本地方法栈中 JNI 引用的对象

(2)方法

方法区中类静态属性引用的对

方法区中常量引用的对象

相关推荐
见叶之秋18 分钟前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
MayBaymax32 分钟前
MQ 基础概念与架构
java·中间件·架构·java-rocketmq
逗脑IDE38 分钟前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
Dovis(誓平步青云)40 分钟前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
小师兄吃牛肉41 分钟前
C语言篇:内联函数
c语言·开发语言
yuniko-n1 小时前
【Java】字符串相关坑点
java·开发语言·python
Terra.K1 小时前
Spring AI day1(SSE+AI)
java·人工智能·spring·springai
斑鸠喳喳1 小时前
线程本地存储 ThreadLocal
java·后端
jimy11 小时前
虚函数vtable,链接时看到构造函数,linker把符号地址写入vtable(三)
开发语言·c++
ss2731 小时前
AI全栈实战 | 3.3-02 Python 并发:有 GIL 为什么还用多线程,asyncio 和 JS 事件循环同源不同味
开发语言·javascript·python