本篇文章主要介绍了"深入理解计算机内存(三)内存垃圾回收之三常用的标记清除算法",主要涉及到方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
为什么要讲这个东东呢,其实我是在为讲JAVA的内存垃圾回收做铺垫。
1、标记-清除算法 该算法很简单,第一步是把用不到的内存标记出来(下图中的黄色块),第二步...
为什么要讲这个东东呢,其实我是在为讲JAVA的内存垃圾回收做铺垫。
1、标记-清除算法
该算法很简单,第一步是把用不到的内存标记出来(下图中的黄色块),第二步就是把标记出来的内存块清除掉。
这个算法有个缺点就是没有进行内存的整理

2、标记-清除-压缩算法

3、标记-复制算法,又叫Coping GC是一种经典的垃圾回收算法

- 一开始就创建一个大的堆区域,并将它一分为二
- 创建对象的时候,从其中一半的区域划分出内存投入使用
- 当另一半区域被装满时,使用和mark-sweep的mark阶段相同的方式跟踪对象,只将生存的对象复制到另一半区域中即可,此时由于对象的地址发生了变化,因此需要维护指向它们的所有指针。
- 复制之后,将对象复制的目标区域切换为创建对象时使用的区域。当这半边区域装满时,再向另一半区域复制,如此循环往复
这个方法把最初的内存区域一分为二,在一个时间点只使用其中的一半,另外一半内存就浪费了,看上去也许是一个效率极差的方法,但是这个算法与标记-清除算法相比有以下优点
- 复制对象的同时进行压缩,由此消除了碎片,提高了虚拟内存和高速缓存的效率
- 舍弃了标记-清除的清除过程,因此,在生存对象占内存比较小的情况下效率较高
以上就介绍了深入理解计算机内存(三)内存垃圾回收之三常用的标记清除算法,包括了方面的内容,希望对Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_178758.html