posts - 122,  comments - 25,  trackbacks - 0
          垃圾收集的目的在于清除不再使用的對象,釋放那些不再使用的對象所占用的內存。GC兩種常用的方法是引用計數和對象引用遍歷,早期的jvm使用引用計數,現在大多數jvm采用對象引用遍歷。

          1、對象引用計數:
          當應用程序創建引用以及引用超出作用域(范圍)時,jvm必須適當增減引用數。當某對象的引用數為0時,對象便可以進行垃圾收集。

          2、對象引用遍歷:
          (1)、標記(marking)對象:從一組對象開始,沿著整個對象圖上的引用鏈,遞歸確定可到達的對象,GC將標記這些可到達的對象。如果某對象不能從這些根對象的一個(至少一個)到達,則表示它可被收集。

          (2)、清除(sweeping)對象:GC刪除不可到達的對象,刪除時,有些GC只是簡單的掃描堆棧,刪除未標記的對象,并釋放它們的內存以生成新的對象。這種方法的問題在于內存會分成好多小段,而它們不足以用于新的對象,但是組合起來卻很大。因此,許多gc可以重新組織內存中的對象,并進行壓縮(compact),形成可利用的空間。
          posted on 2010-09-25 12:13 josson 閱讀(255) 評論(0)  編輯  收藏 所屬分類: java 開發
          <2010年9月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 全南县| 黄骅市| 奎屯市| 电白县| 江阴市| 唐山市| 田林县| 峨山| 昆明市| 通榆县| 宿松县| 北流市| 丽江市| 大埔区| 花莲市| 朔州市| 沙河市| 洛南县| 旬邑县| 自治县| 信阳市| 徐州市| 贡觉县| 新邵县| 灵石县| 仁寿县| 化德县| 中卫市| 武汉市| 阿尔山市| 洞口县| 鲜城| 菏泽市| 延川县| 乌拉特前旗| 绥化市| 北流市| 麻城市| 江达县| 儋州市| 隆回县|