谈常用GC回收算法之前,先说一下引用计数法
String p = new String("abc")
abc这个字符串对象的引用计数值为1.
所谓复制算法(Copying),即将内存平均分成A区、B区两块,进行复制+清除垃圾的操作,算法图解如下:
算法过程:
分析:
这种算法简单高效,但是内存代价极高,有效内存只为总内存的一半,会浪费掉50%的空间。所以这种算法只是纸面算法,不具备可用性,一般来说都会使用优化的复制算法。
适用场景:
这种方法不涉及到对象的删除,只是把可用的对象从一个地方拷贝到另一个地方,因此适合大量对象回收的场景,比如新生代的回收。
原文:https://www.cnblogs.com/pengsay/p/14967006.html