日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java面试题】49 垃圾回收的优点和原理。并考虑2种回收机制。

發布時間:2025/3/15 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java面试题】49 垃圾回收的优点和原理。并考虑2种回收机制。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、Java語言最顯著的特點就是引入了垃圾回收機制,它使java程序員在編寫程序時不再考慮內存管理的問題。?
2、由于有這個垃圾回收機制,java中的對象不再有“作用域”的概念,只有引用的對象才有“作用域”。?
3、垃圾回收機制有效的防止了內存泄露,可以有效使用可使用的內存。?
4、垃圾回收器通常作為一個單獨的低級別的線程運行,在不可預知的情況下對內存堆中已經死亡的或很長時間沒有用過的對象進行清除和回收。?
5、程序員不能實時的對某個對象或所有對象調用垃圾回收器進行垃圾回收。

垃圾回收機制有分代復制垃圾回收標記垃圾回收增量垃圾回收

一、分代復制垃圾回收

? ? 不同的對象的生命周期是不一樣的。因此,不同生命周期的對象可以采取不同的收集方式,以便提高回收效率。?在Java程序運行的過程中,會產生大量的對象,其中有些對象是與業務信息相關,比如Http請求中的?

Session對象、線程、Socket連接,這類對象跟業務直接掛鉤,因此生命周期比較長。但是還有一些對象,主要是程序運行過程中生成的臨時變量,這些對象生命周期會比較短,比如:String對象,由于其不變類的特性,系統會產生大量的這些對象,有些對象甚至只用一次即可回收。如果每次垃圾回收都是對整個堆空間進行回收,花費時間相對會 長,并且生命周期長的對象依舊存在,因此引入分代回收,把不同生命周期的對象放在不同代上,不同代上采用最適合它的垃圾回收方式進行回收。

? ? 虛擬機中的共劃分為三個代:年輕代(Young Generation)、年老點(Old Generation)和持久代(Permanent Generation)。由于對象進行了分代處理,因此垃圾回收區域、時間也不一樣。GC有兩種類型:Scavenge GC和Full GC。

Scavenge GC:一般情況下,當新對象生成,并且在Eden申請空間失敗時,就會觸發Scavenge GC,對Eden區域進行GC,清除非存活對象,并且把尚且存活的對象移動到Survivor區。然后整理Survivor的兩個區。這種方式的GC是對年輕代的Eden區進行,不會影響到年老代。因為大部分對象都是從Eden區開始的,同時Eden區不會分配的很大,所以Eden區的GC會頻繁進行。因而,一般在這里需要使用速度快、效率高的算法,使Eden去能盡快空閑出來。

Full GC :對整個堆進行整理,包括Young、Tenured和Perm。Full GC因為需要對整個對進行回收,所以比ScavengeGC要慢,因此應該盡可能減少Full GC的次數。在對JVM調優的過程中,很大一部分工作就是對于FullGC的調節。有如下原因可能導致Full GC:

· 年老代(Tenured)被寫滿?

· 持久代(Perm)被寫滿?

· System.gc()被顯示調用?

? ? ?上一次GC之后Heap的各域分配策略動態變化

?

二、標記垃圾回收

? ? 它是第一個可以回收被循環引用的數據結構的垃圾回收算法.現在仍舊有許多常用的垃圾回收技術使用各種各樣的標記清除算法的變體。

? ? 在使用標記清除算法時,未引用對象并不會被立即回收.取而代之的做法是,垃圾對象將一直累計到內存耗盡為止.當內存耗盡時,程序將會被掛起,垃圾回收開始執行.當所有的未引用對象被清理完畢時,程序才會繼續執行。

標記清除算法由兩個階段組成:?

①?標記階段,標記所有的可訪問對象。

②?收集階段,垃圾收集算法掃描堆并回收所有的未標記對象。

? ? 標記垃圾回收的優點:標記清除式的垃圾回收跟蹤了由根(root)訪問的所有對象,所以即使是在有循環引用時,它也可以正確地標記并執行垃圾回收工作。另外,對于引用對象的常規操作不會產生任何的額外開銷。

? ? 缺點:當垃圾回收算法執行時,正常的程序會被掛起。特別是,如果一個程序是交互式程序或者正在有一些實時運算時,這就會成為一個問題。比如,一個正在進行垃圾回收的交互式程序會周期的無響應。

?

三、增量垃圾回收

? ? 對這種垃圾回收機制始終無法理解透徹,只能在此稍作解釋,具體該如何定義也請自行google。

簡單地說,它的存在是為了解決標記清除的長停頓問題。增量回收是將GC分成幾部分來執行。設置「GC最多中斷10ms」這樣的條件限制來使GC的終端時間視作可預測的。但是,在兩段的GC程序之間,引用關系可能發生了變化。所以,這種GC算法也要寫屏障,來記錄引用關系的變化。雖然這種方式控制了中斷最高時間,但是由于中斷次數增加,GC總時間是增加的。

? ? 關于增量垃圾回收,http://blog.csdn.NET/u011320646/article/details/38640703 這篇博文解釋得比較生動,有需要的可以自行閱讀。

?

?

總結

以上是生活随笔為你收集整理的【Java面试题】49 垃圾回收的优点和原理。并考虑2种回收机制。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www欧美 | 亚洲黄色一区二区 | 久婷婷| 亚洲成人黄色网址 | 另类专区成人 | 欧美操操操 | 日韩欧美精品久久 | 久久免费视频一区 | 亚洲综合激情在线 | 成人久久久久久久 | 亚洲激情一区二区三区 | 老司机精品视频在线播放 | 经典一区二区 | 极品美女销魂一区二区三区 | 嫩草视频在线看 | 天天看片天天干 | 日韩视频福利 | 中文字幕视频一区二区 | 小柔的淫辱日记(1~7) | 日韩福利在线 | 国产精品污www在线观看 | 苏晴忘穿内裤坐公交车被揉到视频 | 无码人妻少妇伦在线电影 | 国产美女性生活 | 九九在线观看视频 | 99视频只有精品 | 不卡的av在线免费观看 | 国产99999 | 国产在线观看免费av | 91在线视频国产 | av在线资源播放 | 91免费精品视频 | 国产无套粉嫩白浆内谢 | 日韩在线精品视频一区二区涩爱 | 欧美成人三级在线观看 | 催眠调教艳妇成肉便小说 | 精品欧美一区二区三区免费观看 | 亚洲自拍第二页 | 正在播放一区 | 五月天久久久 | 在厨房拨开内裤进入毛片 | 美女午夜影院 | 国产123在线| 欧美爱爱一区二区 | 欧美日韩国产在线播放 | 91久久精品国产91性色tv | 欧美videossex另类 | 91午夜免费视频 | 人人插人人草 | 黄色一级欧美 | 欧美交换 | 蜜桃视频成人在线观看 | 国产99精品视频 | 欧美成人午夜精品久久久 | 亚洲卡一卡二 | 亚洲成a人无码 | 乖疼润滑双性初h | 欧美黄频| 亚洲成av人片在线观看无 | 牛牛视频在线 | 国产精品成人国产乱 | 免费看黄色漫画 | 老司机av导航 | 欧美自拍偷拍一区二区 | 欧美在线视频a | 国产精品中文字幕在线 | 国产一区二区不卡在线 | 人妻一区二区三区免费 | 日韩中文字幕av电影 | 色吧av| 久热av在线 | 欧美草逼网| 夜夜骚av| 黄色在线观看免费视频 | 日日日干 | 亚洲五月天综合 | 精品人妻伦一二三区久久 | 进去里视频在线观看 | 日日噜夜夜噜 | 天堂网av2018| 久草网视频 | 亚洲25p| 精品网站999www | 色婷婷av一区 | 中文字幕女同女同女同 | 在线h网站 | 在线看片网站 | 中文字幕人妻丝袜乱一区三区 | www九九九| 天堂中文在线视频 | 97日日夜夜 | 国产精品久久久影院 | 米奇久久| 日本午夜大片 | www.天天综合 | 一个人看的视频www 色就是色网站 | www.黄色网址.com | 亚洲无吗在线观看 | 东方成人av在线 |