标签:png 因此 src 循环 次数 info abc 适合 过程
谈常用GC回收算法之前,先说一下引用计数法
引用计数算法很简单,它实际上是通过在对象头中分配一个空间来保存该对象被引用的次数。如果该对象被其它对象引用,则它的引用计数加一,如果删除对该对象的引用,那么它的引用计数就减一,当该对象的引用计数为0时,那么该对象就会被回收。
比如说,当我们编写以下代码时,
String p = new String("abc")
abc这个字符串对象的引用计数值为1
而当我们去除abc字符串对象的引用时,则abc字符串对象的引用计数减1
所谓复制算法(Copying),即将内存平均分成A区、B区两块,进行复制+清除垃圾的操作,算法图解如下:
算法过程:
分析:
这种算法简单高效,但是内存代价极高,有效内存只为总内存的一半,会浪费掉50%的空间。所以这种算法只是纸面算法,不具备可用性,一般来说都会使用优化的复制算法。
适用场景:
这种方法不涉及到对象的删除,只是把可用的对象从一个地方拷贝到另一个地方,因此适合大量对象回收的场景,比如新生代的回收。
标签:png 因此 src 循环 次数 info abc 适合 过程
原文地址:https://www.cnblogs.com/pengsay/p/14967006.html