中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jvm中怎樣確定垃圾

發布時間:2021-12-21 10:28:42 來源:億速云 閱讀:163 作者:柒染 欄目:大數據

jvm中怎樣確定垃圾,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

  一、 如何確定垃圾 

1.1. 引用計數法

在 Java 中,引用和對象是有關聯的。如果要操作對象則必須用引用進行。因此,很顯然一個簡單的辦法是通過引用計數來判斷一個對象是否可以回收。簡單說,即一個對象如果沒有任何與之關

聯的引用,即他們的引用計數都不為 0,則說明對象不太可能再被用到,那么這個對象就是可回收對象。

1.2. 可達性分析

為了解決引用計數法的循環引用問題,Java 使用了可達性分析的方法。通過一系列的“GC roots”對象作為起點搜索。如果在“GC roots”和一個對象之間沒有可達路徑,則稱該對象是不可達的。要注意的是,不可達對象不等價于可回收對象,不可達對象變為可回收對象至少要經過兩次標記過程。兩次標記后仍然是可回收對象,則將面臨回收。

2.1標記清除算法(Mark-Sweep)

最基礎的垃圾回收算法,分為兩個階段,標注和清除。標記階段標記出所有需要回收的對象,清除階段回收被標記的對象所占用的空間。如圖

jvm中怎樣確定垃圾

從圖中我們就可以發現,該算法最大的問題是內存碎片化嚴重,后續可能發生大對象不能找到可利用空間的問題。

            2.2 復制算法(copying)

為了解決 Mark-Sweep 算法內存碎片化的缺陷而被提出的算法。按內存容量將內存劃分為等大小的兩塊。每次只使用其中一塊,當這一塊內存滿后將尚存活的對象復制到另一塊上去,把已使用的內存清掉,如圖:

jvm中怎樣確定垃圾

這種算法雖然實現簡單,內存效率高,不易產生碎片,但是最大的問題是可用內存被壓縮到了原本的一半。且存活對象增多的話,Copying 算法的效率會大大降低。

           2.3標記整理算法(Mark-Compact)

結合了以上兩個算法,為了避免缺陷而提出。標記階段和 Mark-Sweep 算法相同,標記后不是清

理對象,而是將存活對象移向內存的一端。然后清除端邊界外的對象。如圖:

jvm中怎樣確定垃圾

關于jvm中怎樣確定垃圾問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jvm
AI

马鞍山市| 克拉玛依市| 正镶白旗| 大连市| 修水县| 深州市| 中阳县| 兴文县| 海宁市| 龙山县| 石泉县| 静宁县| 通江县| 巴青县| 云龙县| 永顺县| 伊金霍洛旗| 南漳县| 辉县市| 舟山市| 搜索| 青铜峡市| 高要市| 沭阳县| 牟定县| 巢湖市| 宾川县| 江都市| 潢川县| 印江| 建昌县| 阳新县| 大城县| 杭锦旗| 江口县| 苗栗县| 瓦房店市| 洛阳市| 浦县| 济阳县| 青阳县|