大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 告訴你什么是Java垃圾回收機(jī)制

告訴你什么是Java垃圾回收機(jī)制

更新時(shí)間:2022-06-02 10:13:48 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1725次

什么是Java垃圾回收機(jī)制?動(dòng)力節(jié)點(diǎn)小編來(lái)為大家解答。

什么是垃圾回收?

垃圾收集是一種自動(dòng)收集某個(gè)程序不再需要的內(nèi)存區(qū)域并使該內(nèi)存區(qū)域可供其他程序使用的技術(shù)。

程序的處理在垃圾回收?qǐng)?zhí)行過(guò)程中停止。因此,垃圾收集能否正常運(yùn)行,極大地影響了系統(tǒng)性能。

程序中使用new創(chuàng)建的 Java 對(duì)象,占用 JavaVM 管理的內(nèi)存空間。從創(chuàng)建 Java 對(duì)象到它變得多余的時(shí)間段稱為Java對(duì)象的生命周期。

Java 對(duì)象有兩種類型;壽命短的和壽命長(zhǎng)的。對(duì)于在服務(wù)器上運(yùn)行的 Java 應(yīng)用程序,許多 Java 對(duì)象由請(qǐng)求和響應(yīng)或事務(wù)管理創(chuàng)建。這些 Java 對(duì)象的生命周期很短,因?yàn)樗鼈冊(cè)谔幚斫Y(jié)束時(shí)變得多余。另一方面,在應(yīng)用程序運(yùn)行時(shí)不斷使用的 Java 對(duì)象具有較長(zhǎng)的生命周期。

為了有效地執(zhí)行垃圾回收,您需要通過(guò)對(duì)生命周期短的對(duì)象執(zhí)行垃圾回收來(lái)使內(nèi)存回收有效。避免對(duì)重復(fù)使用的長(zhǎng)壽命對(duì)象進(jìn)行不必要的垃圾回收,有助于防止系統(tǒng)性能下降。這是通過(guò)按代垃圾收集來(lái)實(shí)現(xiàn)的。

在按代垃圾回收中,Java 對(duì)象通過(guò)將它們分成兩個(gè)區(qū)域進(jìn)行管理;存儲(chǔ)壽命短的對(duì)象的 New 區(qū)域和存儲(chǔ)壽命長(zhǎng)的對(duì)象的 Tenured 區(qū)域。New 區(qū)域進(jìn)一步分為 Eden 區(qū)域和 Survivor 區(qū)域,Eden 區(qū)域保存最近使用new創(chuàng)建的對(duì)象,Survivor 區(qū)域保存即使多次運(yùn)行垃圾收集后仍未收集的對(duì)象。執(zhí)行垃圾收集超過(guò)固定次數(shù)的New區(qū)域的Java對(duì)象被認(rèn)為是長(zhǎng)期需要的Java對(duì)象,這些Java對(duì)象移動(dòng)到Tenured區(qū)域。

下圖顯示了內(nèi)存空間和按代垃圾回收管理的 Java 對(duì)象的概覽:

分代垃圾回收?qǐng)?zhí)行的垃圾回收有以下兩種類型:

復(fù)制垃圾收集

復(fù)制垃圾收集僅針對(duì) Eden 區(qū)域和 Survivor 區(qū)域。當(dāng)您使用 Eden 區(qū)域創(chuàng)建 Java 對(duì)象時(shí),會(huì)發(fā)生復(fù)制垃圾收集。

您可以通過(guò)指定 Java HotSpot VM 選項(xiàng)來(lái)選擇串行復(fù)制垃圾收集和并行復(fù)制垃圾收集。

因?yàn)榇袕?fù)制垃圾回收的處理是并行執(zhí)行的,所以可以高速執(zhí)行并行復(fù)制垃圾回收。但是,如果您選擇并行復(fù)制垃圾回收,則無(wú)法使用顯式管理堆功能。

默認(rèn)選擇串行復(fù)制垃圾收集。請(qǐng)注意,本章介紹的內(nèi)容適用于這兩種類型的復(fù)制垃圾回收。

物體的壽命與年齡的關(guān)系

對(duì)一個(gè)對(duì)象執(zhí)行復(fù)制垃圾回收的次數(shù)稱為對(duì)象的年齡。

下圖顯示了一個(gè)對(duì)象的壽命和年齡之間的關(guān)系:

應(yīng)用程序啟動(dòng)后,初始化過(guò)程完成,復(fù)制垃圾回收已經(jīng)執(zhí)行了多次,長(zhǎng)期需要的長(zhǎng)壽命對(duì)象移動(dòng)到Tenured區(qū)。結(jié)果,在啟動(dòng)應(yīng)用程序后不久,Java 堆就達(dá)到了穩(wěn)定狀態(tài),并且大多數(shù)創(chuàng)建的 Java 對(duì)象都是生命周期較短的對(duì)象。特別是,如果新區(qū)域的調(diào)整已經(jīng)適當(dāng)執(zhí)行,那么在 Java 堆穩(wěn)定后,大部分生命周期較短的對(duì)象都會(huì)在第一次復(fù)制垃圾回收期間被回收。

復(fù)制垃圾回收機(jī)制

在JavaVM中,執(zhí)行復(fù)制垃圾回收的New區(qū)的內(nèi)存空間被劃分為Eden區(qū)和Survivor區(qū)。Survivor 區(qū)域進(jìn)一步分為 From 空間和 To 空間。From 空間和 To 空間具有相同的內(nèi)存大小。

下圖是New區(qū)域的配置:

Eden 區(qū)域是最初存儲(chǔ)使用new創(chuàng)建的對(duì)象的區(qū)域。當(dāng)在程序中執(zhí)行new時(shí),會(huì)分配來(lái)自 Eden 區(qū)域的內(nèi)存。

當(dāng) Eden 區(qū)域變滿時(shí),將執(zhí)行復(fù)制垃圾回收。復(fù)制垃圾回收中進(jìn)行如下處理:

在 Eden 區(qū)域和 Survivor 區(qū)域的 From 空間中存在的 Java 對(duì)象中,正在使用的對(duì)象被復(fù)制到 Survivor 區(qū)域的 To 空間。未使用的 Java 對(duì)象將被銷毀。

Survivor 區(qū)域的 To 空間和 From 空間被交換。

結(jié)果,Eden 區(qū)域和 To 空間變?yōu)榭眨谑褂玫膶?duì)象保留在 From 空間中。

保存對(duì)象

將那些年齡未達(dá)到閾值的 Java 對(duì)象移動(dòng)到 Tenured 區(qū)域的活動(dòng)稱為Saving。當(dāng) Eden 區(qū)域和 From 空間中正在使用的對(duì)象數(shù)量增加并且這些對(duì)象將被移動(dòng)到的 To 空間的內(nèi)存大小不足以在復(fù)制垃圾回收期間保存這些對(duì)象時(shí),就會(huì)發(fā)生保存。在這種情況下,無(wú)法移動(dòng)到 To 空間的對(duì)象將移動(dòng)到 Tenured 區(qū)域。

當(dāng)對(duì)象被保存時(shí),原本不應(yīng)該保存在Tenured區(qū)的壽命短的對(duì)象,被保存到Tenured區(qū)。如此反復(fù),本應(yīng)通過(guò)復(fù)制垃圾回收來(lái)回收的對(duì)象不斷在內(nèi)存空間中累積,從而增加 Java 堆的內(nèi)存使用量,最終發(fā)生完整的垃圾回收。

不執(zhí)行垃圾回收的區(qū)域(使用顯式內(nèi)存管理功能的顯式堆區(qū)域)

在 JavaVM中,除了 Eden 區(qū)域、Survivor 區(qū)域和 Tenured 區(qū)域之外,您還可以使用稱為Explicit heap的區(qū)域。垃圾回收不在顯式堆區(qū)域中執(zhí)行。

使用自動(dòng)分配設(shè)置文件和顯式內(nèi)存管理功能 API 指定要保存在顯式堆區(qū)域中的對(duì)象。在指定對(duì)象從 Survivor 區(qū)域移動(dòng)到 Tenured 區(qū)域的時(shí)刻,指定對(duì)象被移動(dòng)到 Explicit heap 區(qū)域。您可以指定沒(méi)有被復(fù)制垃圾回收回收的長(zhǎng)生命周期的對(duì)象,以減少Tenured區(qū)的內(nèi)存使用,并防止完全垃圾回收的發(fā)生。您還可以使用顯式內(nèi)存管理功能或顯式內(nèi)存管理功能 API 的自動(dòng)分配設(shè)置文件在顯式堆區(qū)域中創(chuàng)建指定對(duì)象。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲国产欧美日韩一区二区 | 亚洲国产精品第一区二区三区 | 午夜大片免费男女爽爽影院久久 | 欧美一区二区三区成人看不卡 | 精品视频一区在线观看 | 亚洲精品午夜久久久伊人 | 欧美精品亚洲精品日韩一区 | 亚洲精品乱码久久久久 | 欧美一级爱操视频 | 99爱视频 | 精品中文字幕一区二区三区四区 | 欧美5o老妇性xxx | 日本黄色免费一级片 | 精品日韩视频 | 亚洲一二三| 日本在线毛片视频免费看 | 在线欧美精品国产综合五月 | 国产亚洲精品自在久久不卡 | 亚洲欧美另类精品久久久 | 免费看欧美日韩一区二区三区 | 日本成人二区 | 国产福利短视频 | 久草5| 午夜影院操 | 国产精品一区二区三区久久 | 国产色站| 色菇凉天天综合网 | 男人天堂a在线 | 久久婷婷一区二区三区 | 欧美国产日韩911在线观看 | 91精品国产91久久久久福利 | 国产精品视频自拍 | 国产免费播放一区二区三区 | 免费观看性欧美一级 | h视频在线观看免费网站 | 九九伦理影院手机观看 | 91九色jiuse006 | 国产美女激情视频 | 国产小视频91 | 四虎影视库 | 日本一级一片免费 |