posts - 4,  comments - 0,  trackbacks - 0
          Heap堆內存理解

          一個JVM實例只有一個堆內存,堆內存的大小是可以調節的。類加載器讀取類文件后,需要把類文件、方法、常量放入到堆內存中,以便執行器執行,堆內存分為三部分:

          1. Permanent Space 永久存儲區

          永久存儲區是一個常駐內存區域,用于存放JDK自身所攜帶的Class,Interface的元數據,也就是說它存儲的是運行環境必須的類信息,被裝載進此區域的數據是不會被垃圾回收器回收掉的,關閉JVM才會釋放此區域所占用的內存。
          2.Young Generation Space 新生區
          新生區是類的誕生、成長、消亡的區域,一個類在這里產生,應用,最后被垃圾回收器收集,結束生命。
          新生區又分為兩部分:伊甸區(Eden space)和幸存者區(Survivor pace)。
          所有的類都是在伊甸區被new出來的。幸存區有兩個: 0區(Survivor 0 space)和1區(Survivor 1 space)。當伊甸園的空間用完時,程序又需要創建對象,JVM的垃圾回收器將對伊甸園區進行垃圾回收,將伊甸園區中的不再被其他對象所引用的對象進行銷毀。然后將伊甸園中的剩余對象移動到幸存0區。若幸存0區也滿了,再對該區進行垃圾回收,然后移動到1區。那如果1區也滿了呢?再移動到養老區。

          3. Tenure Generation Space 養老區
          養老區用于保存從新生區篩選出來的JAVA對象,一般池對象都在這個區域活躍。 三個區的示意圖如下:


          posted on 2011-05-21 09:42 賀斌 閱讀(590) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 行唐县| 东台市| 呈贡县| 泗水县| 汉寿县| 漯河市| 西乌| 正镶白旗| 伽师县| 婺源县| 云梦县| 海口市| 中阳县| 林口县| 南安市| 德州市| 沧州市| 曲周县| 泽库县| 永顺县| 禹州市| 勃利县| 托里县| 老河口市| 定兴县| 蒙山县| 武宁县| 洪洞县| 平果县| 交口县| 敦煌市| 嵊泗县| 米林县| 通州市| 通江县| 卓尼县| 建湖县| 苏州市| 曲阜市| 湘阴县| 雅安市|