复制算法

与标记-清除算法相比,复制算法是一种相对高效的回收算法。

不适合于存活对象较多的场合 如老年代。

思想:将原有的内存空间分为两块,每次只使用其中的一块,在垃圾回收时候,将正在使用的内存中的存活对象复制到为未使用的内存中,清除正在使用的内存块中的所有对象,交换两个内存的角色,完成垃圾回收。



复制算法完成后,第一块使用的那块内存完成清除,不管它存活还是未存活。都将它清理。




复制算法对空间有一定的浪费。只能使用一半的空间。


为了更好的利用复制算法 做一些扩展



复制算法 需要有担保空间(老年代), 可以去承接大对象,这样复制空间可以很小。

1 大对象尽量不要往复制空间里面去放

2 大对象如果放到复制空间,这样可能造成一些小对象放到了老年代,不太合理。






浪费掉掉空间,就是from 和 to  的复制空间




猜你喜欢

转载自blog.csdn.net/u010325193/article/details/80551965