惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
Y
Y Combinator Blog
月光博客
月光博客
IT之家
IT之家
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
L
LangChain Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
博客园 - Franky
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
V
Visual Studio Blog
小众软件
小众软件
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium

博客园 - 长风破浪

BitMap的原理以及运用 Linux进程调度策略的发展和演变(转) Linux进程状态 点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射) 点评阿里JAVA手册之异常日志(异常处理 日志规约 ) 点评阿里JAVA手册之编程规约(OOP 规约 、集合处理 、并发处理 、其他) 点评阿里JAVA手册之编程规约(命名风格、常量定义、代码风格、控制语句、注释规约) JVM 规范 通过jmap查看jvm采用的垃圾收集器 linux lsof命令详解 常用的Redis客户端的并发模型(转) tomcat在linux下自启动 谈谈互联网后端基础设施(转) linux下tomcat自启动设置 linux下tomcat安全配置 Linux下三个密码生成工具 禁止root用户远程登录 servlet/filter/listener/interceptor区别与联系 linux top命令查看内存及多核CPU的使用讲述
可达性分析算法-确定那些对象是垃圾(转)
长风破浪 · 2017-06-10 · via 博客园 - 长风破浪

在主流的商用程序语言(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