posts - 4,  comments - 0,  trackbacks - 0
            2011年5月21日
          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 @ 2011-05-21 09:42 賀斌 閱讀(590) | 評論 (0)編輯 收藏
          <2011年5月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东光县| 海城市| 延吉市| 丹凤县| 南陵县| 来凤县| 房产| 浙江省| 枞阳县| 方城县| 九龙县| 扎鲁特旗| 新昌县| 安阳市| 建瓯市| 麻江县| 遵义市| 渝中区| 大埔县| 汶上县| 南丰县| 青海省| 盈江县| 鹤壁市| 吴忠市| 宜昌市| 绥中县| 叙永县| 静乐县| 江北区| 阿鲁科尔沁旗| 河池市| 忻州市| 诸暨市| 沂水县| 吴旗县| 印江| 任丘市| 忻州市| 柏乡县| 昌平区|