16 三種基本的GC演算法基石

2021-07-12 06:24:39 字數 517 閱讀 4006

1.gc標記、清除演算法

由於記憶體中物件構成乙個樹,當記憶體耗盡時,程式停止(如果不停止新new物件時標記出錯)。此時程式對物件進行標記和清除。

缺點:停止程式執行,降低使用者體驗。且釋放的記憶體空間不連續。

2.gc的複製演算法

先找出活動物件儲存到空白區域,然後把原來的物件空間清空。

缺點:雖然活動空間連續,但是耗記憶體,且物件空間滿的情況下,複製只是單純的耗記憶體,並沒有清理出多餘的空間

3.gc標記,整理演算法。

採用標記的方法,同時整理出有效的物件組成一段連續的區域。是基於1和2演算法的平衡。

三種基本排序演算法

示例陣列 以公升序為例 for int i 0 i arr.length i 輪數 第一次 j下標從0開始,第0位與第1位相比較,當第0位大於第1位時 3 1 進行交換。交換完陣列為 第二次j為1,第1位與第2位比較,3 5,不交換。第三次j為2,第2位與第3位比較,5 2,交換。陣列為 第四次j為...

使用JS實現三種基本的排序演算法以及三種演算法的比較

function bubblesort arr if arr.length 0 arr.length 1 for let outer arr.length outer 2 outer return arr 選擇排序我們也需要用到巢狀迴圈,演算法思路如下 從陣列的第乙個元素開始,將第乙個元素逐個與其他...

複習三種最基本的排序演算法

package algorithm author kimt version 1.0 date 2017年11月9日 上午11 13 04 description 各種排序演算法 public class sortalg bubblesort a printarr a 插入排序之 快速插入排序 基本思...