当前位置: 首页 > ops >正文

可达性分析算法Test1

可达性分析算法相对于引用计数算法而言,可达性分析算法同样具备实现简单和执行高效等特点,更重要的是,该算法可以有效地解决在引用计数算法中循环引用的问题,防止内存泄漏的发生,这个算法目前较为常用。Java语言选择使用可达性分析算法判断对象是否存活。这种类型的垃圾收集通常叫作追踪性垃圾收集(Tracing GarbageCollection),它的基本流程如下。可达性分析算法是以GC Root(根对象)​(见14.2.1节)为起始点,按照从上至下的方式搜索被根对象集合所连接的目标对象是否可达。GC Root不止一个,它们构成了一个集合,称为“GC Roots”​,所谓“GC Roots”集合就是一组必须活跃的引用。使用可达性分析算法后,内存中的存活对象都会被根对象集合直接或间接连接着,搜索所走过的路径称为引用链(ReferenceChain)。如果目标对象没有在引用链上,则表示对象是不可达的,就意味着该对象已经死亡,可以标记为垃圾对象。即在可达性分析算法中,只有引用链上的对象才是存活对象。

GC Roots集合
在Java语言中,GC Roots集合中的对象引用包括以下几种类型。虚拟机栈中对象的引用,比如,各个线程被调用的方法中使用到的引用数据类型的参数、局部变量等。本地方法栈内JNI(本地方法)对象的引用。方法区中引用数据类型的静态变量。方法区中常量对象的引用,比如字符串常量池(String Table)里的引用。所有被同步锁synchronized持有的对象引用。JVM内部的引用。基本数据类型对应的Class对象引用,一些常驻的异常对象引用(如NullPointerException、OutOfMemoryError)​,系统类加载器对象引用等。反映JVM内部情况的JMXBean、JVMTI中注册的回调、本地代码缓存对象的引用等。

http://www.xdnf.cn/news/14925.html

相关文章:

  • 基于springboot的非遗传承宣传平台
  • 短视频矩阵管理平台的崛起:源头厂商的深度解析
  • 车载通信架构 --- 以太网相关网络安全
  • c++文件操作
  • Git 安装避坑指南:从环境检查到高级配置的全流程解析
  • Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
  • 猎板解析PCB低损耗基材:AI与高频通信的隐形推手
  • 谁主沉浮:人工智能对未来信息技术发展路径的影响研究
  • C++高频知识点(六)
  • 【Python】Python Socket 编程详解:从原理到实践
  • 基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(1)搭建框架基本雏形
  • 实战:Android 15 (API 35) 适配 构建踩坑全记录
  • 鼎捷T100程序开发(R报表开发完整流程)
  • Bright Data MCP+Trae :快速构建电商导购助手垂直智能体
  • RabbitMQ第一章(MQ基础与RocketMQ使用手册)
  • EXCEL链接模板无法自动链接到PowerBI?试试这个方法
  • 数据分析-58-SPC统计过程控制的8个判异准则
  • 解决Maven“无法将类 XXXXX 中的构造器 XXXXXX 应用到给定类型”错误
  • WPA2 与 WPA3:深入解析Wi-Fi安全协议
  • 第0章:开篇词 - 嘿,别怕,AI应用开发没那么神!
  • Linux命令的命令历史
  • 安卓10.0系统修改定制化____recovery-from-boot.p文件的具体作用 在定制项目中的关联
  • stm32--SPI原理应用W25Q64(二)
  • 【力扣(LeetCode)】数据挖掘面试题0002:当面对实时数据流时您如何设计和实现机器学习模型?
  • vue openlayer 找出直线上的某一个点 , 点距离直线 最短路径的点 WKT坐标转换为GeoJSON坐标
  • xbox one controller DSLogic 逻辑分析仪截包
  • 商品中心—库存分桶高并发的优化文档
  • 谢飞机的Java高级开发面试:从Spring Boot到分布式架构的蜕变之旅
  • C++11标准库算法:深入理解std::none_of
  • Docker 将镜像打成压缩包将压缩包传到服务器运行