bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java堆的內存模型介紹-創新互聯

本篇內容介紹了“java堆的內存模型介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名網站空間、營銷軟件、網站建設、鞏留網站維護、網站推廣。

java堆的內存模型

根據對象存活的特點以及使垃圾回收產生算法產生較大的收益,將堆區分為兩大塊,一個是Old區,一個是Young區。Young區分為兩大塊,一個是Survivor區(S0+S1),一塊是Eden區。S0和S1一樣大,也可以叫From和To。

對象創建所在區域

一般情況下,新創建的對象都會被分配到Eden區,一些特殊的大的對象會直接分配到Old區。

比如有對象A,B,C等創建在Eden區,但是Eden區的內存空間肯定有限,比如有100M,假如已經使用了

100M或者達到一個設定的臨界值,這時候就需要對Eden內存空間進行清理,即垃圾收集(GarbageCollect),

這樣的GC我們稱之為MinorGC,MinorGC指得是Young區的GC。經過GC之后,有些對象就會被清理掉,有些對象可能還存活著,對于存活著的對象需要將其復制到Survivor區,然后再清空Eden區中的這些對象。

為什么要分為surivor0和surivor1

下面根據垃圾收集算法

詳細講解下為什么要分為surivor0和surivor1,難道一個survivor區不行嗎?

假設只有一個s0區,eden區回收之后,一部分對象存放到了s0區,此時eden區空間全部釋放,內存都是連續的。但是因為s0區也會進行垃圾回收,它有一部分存活的對象進入到了Old區,還有一部分對象存活留下來,這時候s0區就產生了內存碎片,為了使s0區的內存空間相對連續,再分配一個s1區,大小和s0一樣,每次垃圾回收的時候,將eden區和s0區存活的對象移動到s1區,這樣永遠都能保證s0或者s1的內存空間是連續的。當然,這樣的情況下會使得s0或者s1區有一個空間永遠為空,浪費10%的內存空間,當然為了較大化的利用young區,這樣的浪費是被接受的。所以,young區一次GC流程是這樣的:在同一個時間點上,S0和S1只能有一個區有數據,另外一個是空的。假設s0區有數據,此時進行一次GC操作,s0區中對象的年齡就會+1,而Eden區中所有存活的對象會被復制到是s1區,s0區中還能存活的對象會有兩個去處。若對象年齡達到之前設置好的年齡閾值,此時對象會被移動到Old區,Eden區和s0區沒有達到閾值的對象會被復制到s1區,s0區將又會變為空的。

“java堆的內存模型介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!

網站題目:java堆的內存模型介紹-創新互聯
轉載來源:http://vcdvsql.cn/article20/cssjco.html

成都網站建設公司_創新互聯,為您提供虛擬主機移動網站建設外貿網站建設網站建設手機網站建設企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設