码迷,mamicode.com
首页 > 编程语言 > 详细

【Java入门系列】垃圾回收

时间:2018-08-14 21:11:26      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:垃圾   roots   占用   证明   节点   计数器   root   添加   不可用   

垃圾回收

如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。

垃圾回收其实做了两件事:1、发现无用的对象;2、回收无用对象占用的内存空间。

垃圾回收算法

1、应用计数法

对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1;当引用失效时,计数器值-1。任何时刻计数值为0的对象就是不可能再被使用的。这种算法使用场景很多,但是,Java中却没有使用这种算法,因为这种算法很难解决对象之间相互引用的情况。

2、应用可达法

通过一系列称为“GC Roots”的对象作为起始点,从这些节点向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链(即GC Roots到对象不可达)时,则证明此对象是不可用的。

分代垃圾回收

 

【Java入门系列】垃圾回收

标签:垃圾   roots   占用   证明   节点   计数器   root   添加   不可用   

原文地址:https://www.cnblogs.com/ysdrzp/p/9477426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!