亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

讀書筆記3-《crazy java》

2019-11-14 10:18:20
字體:
來源:轉載
供稿:網友

通過關鍵字new創建java對象,即可視為java對象申請內存空間,JVM會在內存堆中為每個對象分配空間,當一個java對象失去引用時,JVM的垃圾回收機制會自動清除他們,并回收它們所占的內存空間。

是否回收一個對象的標準:是否還有引用變量引用該對象

JVM的垃圾回收機制采用有向圖方式來管理內存中的對象。對象在堆內存中的三種狀態: 1. 可達狀態:有一個以上的引用變量引用它, 在有向圖中可以從起始頂點導航到該對象, 程序可通過引用變量來調用該對象的屬性和方法 2. 可恢復狀態:某個對象不再被任何對象引用,從起始頂點不能導航到該對象,在回收該對象之前,系統會調用finalize方法進行資源清理,如果系統在調用finalizde后重新讓一個以上的引用變量引用該對象,則再次變為可達狀態,反之為不可達狀態 3.不可達狀態:對象的所有關聯被切斷,且調用finalize后仍為不可達,即對象永久失去引用

當某個對象被其他類的類變量引用時,只有該類被銷毀后該對象才會進入可恢復狀態;當某個對象被其他對象的實例變量引用時,只有當引用該對象的對象被銷毀或變為不可達之后才會能進入不可達狀態。

強引用:程序創建一個對象,并把這個對象賦給一個引用變量 軟引用:用SoftReference類加以實現,當系統空間足夠時不會被系統回收,當系統空間不足時會被回收 弱引用:通過WeakReference類實現,和軟引用很像,但弱引用的引用級別更低。當系統回收機制運行時,不管系統內存是否足夠,總會回收該對象所占用的內存。 虛引用:跟蹤對象被垃圾回收的狀態,程序可以通過檢查與虛引用關聯的引用隊列中是否已經包含指定的虛引用,從而了解虛引用所引用對象是否即將被回收。虛引用必須和引用隊列聯合使用。

內存泄漏:存在無用的額內存沒有被回收回來 java內存泄漏的原因: JVM肯定不會回收強引用所引用的java對象,即使系統內存非常緊張,即使該對象以后永遠不會被用到 產生的原因:所有不可達的對象都由垃圾回收機負責回收,因此程序猿不需考慮這部分的內存泄漏。但如果程序中的一些java對象處于可達狀態,但程序以后永遠都不會訪問他們,則占據的內存空間不會被回收,因此發生內存泄漏。

垃圾回收機制完成的兩件事: 1. 跟蹤并監控每個java對象,當某個對象處于不可達狀態時,回收該對象所占用的內存; 2. 清理內存分配、回收過程中產生的內存碎片

垃圾回收的設計算法: 1. 串行回收:始終使用一個CPU來執行垃圾回收操作 2. 并行回收:每個CPU負責回收工作的一部分,效率高,同時復雜度也在提升,內存碎片會增加 3. 應用程序停止:執行垃圾回收的同時會導致應用程序的暫停 4. 并發執行:不會導致應用程序停止,需解決和應用程序的執行沖突,開銷比應用程序停止的方法大,需更多的堆內存 5. 復制式:將所有可達對象復制到另一塊相同的內存中,然后一次性回收整個空間,不產生內存碎片,但需要額外的內存 6. 不壓縮式: 從根訪問所有可達對象并標記,再次遍歷內存區域,回收處理未標記的對象,內存利用率高,但需遍歷兩次堆內存,易產生碎片 7. 壓縮式:從根訪問所有可達對象并標記,將所有可達對象搬遷到一起,之前占用的內存全部回收

現行的垃圾回收器采用分代的方式來進行回收,根據對象生存時間的長短分為young、old、permanent,基于以下兩點事實: 1. 絕大多數的對象在young期間就會被回收; 2. 很老的對象和很新的對象很少存在相互引用

young代采用復制算法,因為大部分對象很快進入不可達狀態。只需遍歷那些處于可達狀態的對象,而且這些對象的數量較少,復制成本不大,因此可充分發揮復制算法的優點。 young代由1個Eden區和兩個Survivor區構成。絕大多數的對象先分配到Eden區,Survivor區中的對象至少在young代中經歷了一次垃圾回收,同一時間1個survivor用來保存對象,另一個是空的。復制就是將Eden和非空的survivor復制到另一個survivor

old代垃圾回收具有如下兩個特征: 1. old代垃圾回收的執行頻率無需太高,因此很少有對象會死掉 2. 每次對old代執行垃圾回收需要更長的時間來完成 基于以上考慮,會采用標記壓縮算法,可避免復制old代的大量對象,而且由于old代的對象不會很快死亡,回收過程在并不會產生大量的內存碎片

permanent代中的對象垃圾回收機制通常不會回收

總結: young代回收的系統開銷比較小,也被稱為次要回收。old代回收的成本較大,稱為主要回收。young代的內存會先被回收,對于old代的回收頻率則要低的多。

常見的垃圾回收器: 1. 串行回收器:young代和old代的回收都是串行的 2. 并行回收器:比串行回收器增加了多CPU并行的能力,即同時啟動多線程并行來執行垃圾回收,并行只針對young代的復制算法 3.并行壓縮回收器:會old代采用不同的算法(先劃分幾個固定大小的區域,mark階段多線程標記可達對象,summary階段從最左邊的區域檢查每個區域的密度,當檢測到可達密度較小時會對其和右側區域進行回收,comact階段利用多線程并行復制數據到密集區域) 4.并發標示-清理回收器(CMS):young代回收方式保持不變,CMS對多數old代回收為并發操作,可分為初始標識、并發標識和再標識。只需兩次短暫的暫停,適用于對實時性要求較高的程序,但需要的堆內存也是最大的

內存管理小技巧: 1. 直接采用直接量創建,不用new的方式來創建 2. 盡早釋放無用對象的引用:方法局部變量引用所引用的對象會隨著方法的結束變為垃圾,并很快被JVM回收。 3. 盡量少用靜態變量:類變量會存放到permanent代中,只要類對象存在就不會被垃圾回收 4. 避免在經常調用的方法、循環中創建java對象 5.緩存經常使用的對象:使用HashMap進行緩存,直接使用某些開源的緩存項目 6. 盡量不要使用finalize的方法 7. 考慮使用軟引用:當系統內存緊張時,系統會自動釋放軟引用所引用的對象


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成年人在线| 精品国产一区久久久| 亚洲精品成人久久久| 最近2019中文字幕第三页视频| 精品久久久久久久久久久| 欧美人与性动交a欧美精品| 亚洲天堂av网| 欧美性高潮床叫视频| 亚洲娇小xxxx欧美娇小| 国产香蕉一区二区三区在线视频| 欧美日韩国产精品| 中文一区二区视频| 97精品国产91久久久久久| 精品女厕一区二区三区| 亚洲精品女av网站| 久久视频这里只有精品| 欧美激情亚洲综合一区| 国产精品十八以下禁看| 欧美一区二区视频97| 97久久精品人搡人人玩| 国产精品老女人视频| 欧美又大又硬又粗bbbbb| 久久青草精品视频免费观看| 欧美在线视频观看| 国产视频精品一区二区三区| 欧美亚洲成人精品| 美女啪啪无遮挡免费久久网站| 久久久精品中文字幕| 成人欧美一区二区三区黑人孕妇| 日韩网站免费观看高清| 日韩av在线导航| 按摩亚洲人久久| 亚洲色图综合久久| 97国产真实伦对白精彩视频8| 欧美最猛性xxxxx(亚洲精品)| 久热在线中文字幕色999舞| 亚洲福利在线播放| 不卡av电影在线观看| 国产精品主播视频| 欧美精品激情blacked18| 亚洲国产私拍精品国模在线观看| 欧美成年人视频| 亚洲一区二区三区sesese| 日日狠狠久久偷偷四色综合免费| 在线观看国产欧美| 亚洲欧洲xxxx| 中文字幕亚洲在线| 久久久女女女女999久久| 午夜精品一区二区三区在线视频| 俺去啦;欧美日韩| 欧美日韩国产在线看| 久久国产天堂福利天堂| 97**国产露脸精品国产| 亚洲免费电影在线观看| 中文字幕日韩在线播放| 亚洲综合最新在线| 成人深夜直播免费观看| 中文字幕国产精品久久| 欧美大片免费看| 国产亚洲精品va在线观看| 国内精品久久影院| 久久九九全国免费精品观看| 福利视频导航一区| 国产精品久久77777| 亚洲国模精品一区| 欧美日韩国产综合新一区| 日韩av理论片| 亚洲人成免费电影| 欧美日韩国产黄| 国产精品久久久久一区二区| 亚洲jizzjizz日本少妇| 国产精品偷伦免费视频观看的| 国产精品jvid在线观看蜜臀| 97在线视频国产| 日韩中文字幕国产精品| 国产深夜精品福利| 亚洲成人黄色在线观看| 欧美激情久久久久久| 国产精品大片wwwwww| 亚洲色图综合网| 久久97久久97精品免视看| 精品久久久久久中文字幕大豆网| 青青草99啪国产免费| …久久精品99久久香蕉国产| 国产精品白嫩初高中害羞小美女| 日韩av免费在线观看| 国产精品福利片| 51色欧美片视频在线观看| 成人午夜在线观看| 国产大片精品免费永久看nba| 色伦专区97中文字幕| 国产情人节一区| 国产一区二区美女视频| 国产精品午夜视频| 欧美性猛交xxxx富婆| 国产精品极品在线| 成人妇女淫片aaaa视频| 亚洲精品国产品国语在线| 亚洲香蕉成视频在线观看| 成人黄色影片在线| 日韩美女在线观看| 日韩中文字幕在线视频播放| 深夜福利一区二区| 九九九久久国产免费| 日韩中文字幕在线视频播放| 欧美激情欧美狂野欧美精品| 国产成人久久精品| 国产精品久久久久久亚洲影视| 亚洲在线免费视频| 色综合久久精品亚洲国产| 在线观看欧美日韩| 97免费视频在线| 欧美精品一区二区免费| 日韩成人黄色av| 黄色一区二区在线观看| 91网站免费观看| 亚洲国产精品高清久久久| 精品视频在线观看日韩| 91久久综合亚洲鲁鲁五月天| 日韩美女福利视频| 国产一区二区美女视频| 91亚洲精品久久久久久久久久久久| 亚洲欧洲在线观看| 亚洲毛片在线免费观看| 亚洲最大福利网| 欧美黄色小视频| 性色av香蕉一区二区| 亚洲精品福利在线| 久久偷看各类女兵18女厕嘘嘘| 97在线精品国自产拍中文| 欧美电影免费观看网站| 青青草原一区二区| 欧美成人在线免费| 最新国产精品亚洲| 久久久久久亚洲精品中文字幕| 丝袜情趣国产精品| 最好看的2019的中文字幕视频| 92看片淫黄大片欧美看国产片| 中文字幕久久亚洲| 91亚洲精品一区二区| 欧美裸体视频网站| 亚洲精品成人av| 国产日产欧美a一级在线| 91亚洲精华国产精华| 精品成人久久av| xxx欧美精品| 超碰日本道色综合久久综合| 57pao国产成人免费| 国产美女主播一区| 国内精久久久久久久久久人| 久久精品一本久久99精品| 欧日韩在线观看| 成人久久精品视频| 亚洲日韩欧美视频一区| 欧美一级片久久久久久久| 欧美日韩在线视频一区二区| 亚洲黄色在线看| 日韩视频精品在线| 一区二区欧美亚洲| 日韩电影免费观看在线观看| 久久久噜噜噜久噜久久| 成人在线精品视频| 自拍偷拍亚洲在线| 日韩欧美亚洲国产一区|