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

可达性分析算法-确定那些对象是垃圾(转)

在主流的商用程序语言(Java、C#,甚至包括前面提到的古老的Lisp)的主流实现中,都是称通过可达性分析(Reachability Analysis)来判定对象是否存活的。这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(用图论的话来说,就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。如图3-1所示,对象object 5、object 6、object 7虽然互相有关联,但是它们到GC Roots是不可达的,所以它们将会被判定为是可回收的对象。

 

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

虚拟机栈(栈帧中的本地变量表)中引用的对象。

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

方法区中常量引用的对象。

本地方法栈中JNI(即一般说的Native方法)引用的对象。

参考:http://blog.csdn.net/jtracydy/article/details/61416634

更多:

http://blog.csdn.net/ochangwen/article/details/51406779

 

转载于:https://www.cnblogs.com/dragonsuc/p/6979702.html

相关文章:

  • Android之使用ContentResolver对通信录中的数据进行简单操作
  • Android之网络操作 - 从网络获取图片或网页
  • OpenGL学习--开发环境
  • jQuery常用总结(转载)
  • Android之把从网络中获取的数据以XML与Json格式返回
  • 抗锯齿的BUG
  • Spring Boot 定时任务的使用
  • VC2012编译CEF3-转
  • Android之用HTTP的get,post,HttpClient三种方式向service提交文本数据
  • PCB原理图库
  • mysql相关故障
  • Win7 打开网页超级慢的解决方案
  • Java并发和多线程3:线程调度和有条件取消调度
  • Android之使用Http协议实现文件上传功能
  • poi API大全
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS盒模型深入
  • JavaScript创建对象的四种方式
  • JS 面试题总结
  • MySQL几个简单SQL的优化
  • MySQL数据库运维之数据恢复
  • Promise面试题,控制异步流程
  • Python socket服务器端、客户端传送信息
  • springMvc学习笔记(2)
  • Tornado学习笔记(1)
  • 大整数乘法-表格法
  • 全栈开发——Linux
  • 什么是Javascript函数节流?
  • 算法系列——算法入门之递归分而治之思想的实现
  • 网络应用优化——时延与带宽
  • 用Visual Studio开发以太坊智能合约
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Spring第一个helloWorld
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • (2)nginx 安装、启停
  • (2)STM32单片机上位机
  • (C++17) std算法之执行策略 execution
  • (C语言)字符分类函数
  • (Java数据结构)ArrayList
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • ***通过什么方式***网吧
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET业务框架的构建
  • .net专家(张羿专栏)
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [ 蓝桥杯Web真题 ]-布局切换