国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

JVM優化:垃圾回收概述

來源: 責編: 時間:2023-08-09 23:02:49 433觀看
導讀一、什么是垃圾回收說起垃圾收集(Garbage Collection, 下文簡稱GC) , 有不少人把這項技術當作Java語言的伴生產物。 事實上, 垃圾收集的歷史遠遠比Java久遠, 在1960年誕生于麻省理工學院的Lisp是第一門開始使 用內存動態分

一、什么是垃圾回收

說起垃圾收集(Garbage Collection, 下文簡稱GC) , 有不少人把這項技術當作Java語言的伴生產物。 事實上, 垃圾收集的歷史遠遠比Java久遠, 在1960年誕生于麻省理工學院的Lisp是第一門開始使 用內存動態分配和垃圾收集 技術的語言。垃圾收集需要完成的三件事情: 哪些內存需要回收? 什么時候回收? 如何回收?uMC28資訊網——每日最新資訊28at.com

二、Java垃圾回收的優缺點

優點:uMC28資訊網——每日最新資訊28at.com

a.不需要考慮內存管理,uMC28資訊網——每日最新資訊28at.com

b.可以有效的防止內存泄漏,有效的利用可使用的內存,uMC28資訊網——每日最新資訊28at.com

c.由于有垃圾回收機制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"uMC28資訊網——每日最新資訊28at.com

缺點:uMC28資訊網——每日最新資訊28at.com

java開發人員不了解自動內存管理, 內存管理就像一個黑匣子,過度依賴就會降低我們解決內存溢出/內存泄漏等問題 的能力。uMC28資訊網——每日最新資訊28at.com

三、判斷對象是否存活 - 引用計數算法

引用計數算法可以這樣實現:給每個創建的對象添加一個引用計數器,每當此對象被某個地方引用時,計數值+1, 引用失效時-1,所以當計數值為0時表示對象已經不能被使用。引用計數算法大多數情況下是個比較不錯的算法, 簡單直接,也有一些著名的應用案例但是對于Java虛擬機來說,并不是一個好的選擇,因為它很難解決對象直接相 互循環引用的問題。uMC28資訊網——每日最新資訊28at.com

優點: 實現簡單,執行效率高,很好的和程序交織。uMC28資訊網——每日最新資訊28at.com

缺點: 無法檢測出循環引用。uMC28資訊網——每日最新資訊28at.com

譬如有A和B兩個對象,他們都互相引用,除此之外都沒有任何對外的引用,那么理論上A和B都可以被作為垃 圾回收掉,但實際如果采用引用計數算法,則A、B的引用計數都是1,并不滿足被回收的條件,如果A和B之 間的引用一直存在,那么就永遠無法被回收了uMC28資訊網——每日最新資訊28at.com

四、判斷對象是否存活-可達性分析算法

在主流的商用程序語言如Java、C#等的主流實現中,都是通過可達性分析(Reachability Analysis)來判斷對象是否存 活的。此算法的基本思路就是通過一系列的“GC Roots”的對象作為起始點,從起始點開始向下搜索到對象的路徑。 搜索所經過的路徑稱為引用鏈(Reference Chain),當一個對象到任何GC Roots都沒有引用鏈時,則表明對象“不可 達”,即該對象是不可用的。uMC28資訊網——每日最新資訊28at.com

uMC28資訊網——每日最新資訊28at.com

在Java語言中,可作為GC Roots的對象包括下面幾種:uMC28資訊網——每日最新資訊28at.com

  • 棧幀中的局部變量表中的reference引用所引用的對象
  • 方法區中static靜態引用的對象
  • 方法區中final常量引用的對象
  • 本地方法棧中JNI(Native方法)引用的對象
  •  Java虛擬機內部的引用, 如基本數據類型對應的Class對象, 一些常駐的異常對象(比如 NullPointExcepiton、 OutOfMemoryError) 等, 還有系統類加載器。
  • 所有被同步鎖(synchronized關鍵字) 持有的對象。
  • 反映Java虛擬機內部情況的JMXBean、 JVMTI中注冊的回調、 本地代碼緩存等。

uMC28資訊網——每日最新資訊28at.com

五、JVM之判斷對象是否存活

finalize()方法最終判定對象是否存活:uMC28資訊網——每日最新資訊28at.com

即使在可達性分析算法中判定為不可達的對象, 也不是“非死不可”的, 這時候它們暫時還處于“緩 刑”階段, 要真 正宣告一個對象死亡, 至少要經歷兩次標記過程:uMC28資訊網——每日最新資訊28at.com

第一次標記:uMC28資訊網——每日最新資訊28at.com

如果對象在進行可達性分析后發現沒有與GC Roots相連接的引用鏈, 那它將會被第一次標記, 隨后進行一次篩 選, 篩選的條件是此對象是否有必要執行finalize()方法。uMC28資訊網——每日最新資訊28at.com

沒有必要:uMC28資訊網——每日最新資訊28at.com

假如對象沒有覆蓋finalize()方法, 或者finalize()方法已經被虛擬機調用過, 那么虛擬機將這兩種情況都視為“沒有必 要執行”。uMC28資訊網——每日最新資訊28at.com

有必要:uMC28資訊網——每日最新資訊28at.com

如果這個對象被判定為確有必要執行finalize()方法, 那么該對象將會被放置在一個名為F-Queue的 隊列之中, 并在 稍后由一條由虛擬機自動建立的、 低調度優先級的Finalizer線程去執行它們的finalize() 方法。 finalize()方法是對 象 逃脫死亡命運的最后一次機會, 稍后收集器將對F-Queue中的對象進行第二次小規模的標記, 如果對 象要在 finalize()中成功拯救自己——只要重新與引用鏈上的任何一個對象建立關聯即可, 譬如把自己 (this關鍵字) 賦值 給某個類變量或者對象的成員變量, 那在第二次標記時它將被移出“即將回收”的集 合; 如果對象這時候還沒有逃 脫, 那基本上它就真的要被回收了。uMC28資訊網——每日最新資訊28at.com

uMC28資訊網——每日最新資訊28at.com

六、再談引用

在JDK1.2以前,Java中引用的定義很傳統: 如果引用類型的數據中存儲的數值代表的是另一塊內存的起始地址,就 稱這塊內存代表著一個引用。這種定義有些狹隘,一個對象在這種定義下只有被引用或者沒有被引用兩種狀態。 我 們希望能描述這一類對象: 當內存空間還足夠時,則能保存在內存中;如果內存空間在進行垃圾回收后還是非常緊 張,則可以拋棄這些對象。很多系統中的緩存對象都符合這樣的場景。 在JDK1.2之后,Java對引用的概念做了擴 充,將引用分為 強引用(Strong Reference) 、 軟引用(Soft Reference) 、 弱引用(Weak Reference) 和 虛引 用(Phantom Reference) 四種,這四種引用的強度依次遞減。uMC28資訊網——每日最新資訊28at.com

1、強引用uMC28資訊網——每日最新資訊28at.com

強引用是使用最普遍的引用。如果一個對象具有強引用,那垃圾回收器絕不會回收它。當內存空間不足,Java虛擬 機寧愿拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內存不足的問 題。 ps:強引用其實也就是我們平時A a = new A()這個意思。uMC28資訊網——每日最新資訊28at.com

2、軟引用uMC28資訊網——每日最新資訊28at.com

如果一個對象只具有軟引用,則內存空間足夠,垃圾回收器就不會回收它;如果內存空間不足了,就會回收這些對 象的內存。只要垃圾回收器沒有回收它,該對象就可以被程序使用。 軟引用可以和一個引用隊列 (ReferenceQueue)聯合使用,如果軟引用所引用的對象被垃圾回收器回收,Java虛擬機就會把這個軟引用加入到 與之關聯的引用隊列中。uMC28資訊網——每日最新資訊28at.com

3、弱引用uMC28資訊網——每日最新資訊28at.com

用來描述那些非必須對象, 但是它的強度比軟引用更弱一些, 被弱引用關聯的對象只能生存到下一次垃圾收集發 生為止。 當垃圾收集器開始工作, 無論當前內存是否足夠, 都會回收掉只 被弱引用關聯的對象。 在JDK 1.2版之 后提供了WeakReference類來實現弱引用。 弱引用可以和一個引用隊列(ReferenceQueue)聯合使用,如果弱引用 所引用的對象被垃圾回收,Java虛擬機就會把這個弱引用加入到與之關聯的引用隊列中。uMC28資訊網——每日最新資訊28at.com

弱引用與軟引用的區別在于: ①更短暫的生命周期; ②一旦發現了只具有弱引用的對象,不管當前內存空間足夠與否,都會回收它的內存。uMC28資訊網——每日最新資訊28at.com

4、虛引用uMC28資訊網——每日最新資訊28at.com

“虛引用”顧名思義,它是最弱的一種引用關系。如果一個對象僅持有虛引用,在任何時候都可能被垃圾回收器回 收。虛引用主要用來跟蹤對象被垃圾回收器回收的活動。uMC28資訊網——每日最新資訊28at.com

虛引用與軟引用和弱引用的一個區別在于: ①虛引用必須和引用隊列 (ReferenceQueue)聯合使用。 ②當垃圾回收器準備回收一個對象時,如果發現它還有虛引用,就會在回收對象的內存之前,把這個虛引用加入到 與之 關聯的引用隊列中。uMC28資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-5148-0.htmlJVM優化:垃圾回收概述

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何高效使用Gherkin

下一篇: 實現分布式事務:Java與MySQL的XA事務協調

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
aaa国产一区| 五月综合激情婷婷六月色窝| 国产日韩精品视频一区二区三区| 免费亚洲一区| 欧美一区二区三区四区高清| 久久久精品影视| 亚洲国产乱码最新视频 | 韩国av一区二区三区| 国产精品毛片在线| 巨乳诱惑日韩免费av| 欧美日韩亚洲综合在线 | 在线综合视频播放| 久久精品亚洲乱码伦伦中文| 五月开心婷婷久久| 91麻豆免费在线观看| 色噜噜偷拍精品综合在线| 久久―日本道色综合久久| 天天综合日日夜夜精品| 91免费在线播放| 在线观看av一区| 自拍偷自拍亚洲精品播放| 国产高清在线精品| 亚洲欧美不卡| 国产精品丝袜久久久久久app| 久久不见久久见免费视频7| 狠狠色噜噜狠狠狠狠色吗综合| 欧美精三区欧美精三区| 一区二区三区影院| 成人手机电影网| 媚黑女一区二区| 中文字幕日韩av资源站| 国产精品一区二区黑丝| 国产日韩一区二区| 2024国产精品视频| 久久国产福利国产秒拍| 日韩午夜免费视频| 日韩一级片网站| 老司机精品视频导航| 国产精品久久久久久模特| 国产色产综合色产在线视频| 韩国av一区二区| 色噜噜偷拍精品综合在线| 一区二区免费在线| 激情六月综合| 国产精品美女久久久久久久久| 成人爽a毛片一区二区免费| 欧美亚洲免费在线一区| 一区二区三区**美女毛片| 欧美激情aⅴ一区二区三区| 欧美乱熟臀69xxxxxx| 亚洲综合色在线| 亚洲精品1区| 精品国产一区二区亚洲人成毛片 | 在线观看网站黄不卡| 亚洲动漫第一页| 国产精品一区二区a| 亚洲色图视频免费播放| 国产精品二区在线| 久久尤物电影视频在线观看| 国产成人啪午夜精品网站男同| 欧美精选一区二区| 国产精品伊人色| 欧美精品在线一区二区三区| 激情五月激情综合网| 色嗨嗨av一区二区三区| 日本视频免费一区| 欧美亚洲综合久久| 青青草成人在线观看| 欧美色综合天天久久综合精品| 奇米精品一区二区三区四区 | 精品无人区卡一卡二卡三乱码免费卡 | 欧美中文字幕| 日本午夜一本久久久综合| 日本高清无吗v一区| 久久99九九99精品| 777亚洲妇女| 99久久久久久| 国产精品美女久久久久aⅴ | 欧美mv日韩mv| 欧美日韩在线播放一区二区| 一区精品在线播放| 国产精品一区二区三区免费观看| 亚洲综合激情另类小说区| 一本久道中文字幕精品亚洲嫩| 免费成人在线影院| 欧美一区二区二区| 色综合久久综合网97色综合| 国产精品久久久久久久午夜片| 亚洲精品在线二区| 日韩制服丝袜av| 欧美一区二区视频网站| 91网站最新地址| 亚洲精品视频在线看| 色综合久久99| 久久精品国产亚洲一区二区三区| 欧美电视剧在线观看完整版| 欧美日本精品| 天天色天天爱天天射综合| 欧美日韩国产综合一区二区 | 欧美极品xxx| 久久精品二区三区| 国产成人av电影在线观看| 亚洲国产精品精华液2区45| 国产伦精品一区二区三| 国产精品一品二品| www一区二区| 久久黄色小说| 欧美综合视频在线观看| 国产精品免费一区二区三区在线观看| 欧美久久高跟鞋激| 欧美国内亚洲| 香蕉乱码成人久久天堂爱免费| 蜜乳av另类精品一区二区| 精品一区中文字幕| 久久精品一区二区三区不卡| 亚洲一区二区三区午夜| 国产福利91精品| 亚洲综合色噜噜狠狠| 国产尤物精品| 欧美唯美清纯偷拍| 91在线码无精品| 日本欧美一区二区三区乱码| 精品处破学生在线二十三| 亚洲一区二区三区免费观看 | 欧美一区二区三区四区高清| 一区二区国产精品| 精品sm在线观看| 国产电影精品久久禁18| 欧美久久综合| 国产精品yjizz| 一区二区三区中文字幕在线观看| 91福利资源站| 激情91久久| 不卡的av中国片| 精品在线亚洲视频| 亚洲丰满少妇videoshd| 久久久久久久久久久黄色| 欧美福利视频导航| 男女av一区三区二区色多| 国产在线视频欧美一区二区三区| 国产传媒欧美日韩成人| 视频一区在线播放| 亚洲精品国产精华液| 中日韩免费视频中文字幕| 日韩一区二区三区av| 久久婷婷av| 国产一区二区三区的电影 | 国产不卡视频在线播放| 亚洲国产精品一区| 国产精品区一区二区三| 欧美精品在线观看播放| 99精品99| 在线观看一区| 高清不卡在线观看| 亚洲午夜久久久久久久久电影院 | 亚洲综合网站在线观看| 欧美精品一区二区三区在线播放| 欧美日韩激情一区二区三区| 日本高清无吗v一区| 久久视频一区| 在线视频欧美精品| 欧美另类专区| www.综合网.com| 国产成人啪免费观看软件 | 欧美久久在线| 欧美日本三区| 狠狠色综合色区| 色综合网站在线| 国产综合色产| 亚洲高清不卡一区| 欧美午夜一区| 天涯成人国产亚洲精品一区av| 亚洲久本草在线中文字幕| 亚洲国产精品t66y| 国产精品久久亚洲7777| 99热这里只有成人精品国产| 伊人精品在线| 日韩亚洲一区在线播放| 99免费精品在线| 国产高清精品网站| 成人av在线一区二区三区| 91在线视频播放| 中文字幕欧美三区| 欧美电影免费观看高清完整版在线| 国产精品v欧美精品v日韩| 国产高清久久久久| 青娱乐精品在线视频| 日韩亚洲电影在线| 午夜精彩视频在线观看不卡| 久久精品夜色噜噜亚洲a∨ | 成人午夜看片网址| av午夜精品一区二区三区| 欧美理论在线| 国产精品日韩一区二区| 日韩亚洲视频在线| 色婷婷亚洲婷婷| 欧美一区二区性放荡片| 久久色在线观看| 亚洲天堂网中文字| 麻豆久久一区二区|