複製算法:
如果jvm使用了coping算法,一開始就會將可用內存分爲兩塊,from域和to域, 每次只是使用from域,to域則空閒着。當from域內存不夠了,開始執行GC操作,這個時候,會把from域存活的對象拷貝到to域,然後直接把from域進行內存清理。
優點:在存活對象不多的情況下,性能高,能解決內存碎片和java垃圾回收算法之-標記清除 中導致的引用更新問題。
缺點: 會造成一部分的內存浪費。
coping算法一般是使用在新生代中,因爲新生代中的對象一般都是朝生夕死的,存活對象的數量並不多,這樣使用coping算法進行拷貝時效率比較高