<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    @hunter129

    天天學習,好好向上!

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      21 隨筆 :: 5 文章 :: 37 評論 :: 0 Trackbacks
    本系列文章由作者@hunter129 翻譯,轉載請注明出處。

    第二章 直接 VS 自動內存管理

    內存管理是這樣的一些過程,識別哪些對象不再有用,回收(釋放)這些對象使用的內存,使這些內存在隨后的分配中可用。在一些編程語言中,
    內存分配是程序員的責任。這項復雜的任務導致了很多常見的錯誤,如怪異、錯誤的程序行為和程序崩潰。結果是,開發人員很大比例的時間都
    在調試解決這些錯誤。

    在直接內存管理的程序中經常犯的一個錯誤是懸掛引用(dangling references)。對象使用的空間被回收時,可能還有其他對象引用著。如果
    一個對象擁有這樣(懸掛)的引用,當它試圖訪問原始對象時,很可能這塊空間已經分配給了新的對象,結果導致了未預期的訪問。

    另外一個在直接內存管理中常見的錯誤是內存泄露(space leaks)。內存分配完不再使用后卻沒有釋放就會產生這樣的錯誤。例如,你打算釋放
    一個鏈表(linked list)使用的空間時犯了一個錯誤,只回收了鏈表的第一個對象,其余的對象就不再被引用了,然而這些對象脫離了程序的控
    制,再也無法使用或恢復。如果產生了足夠的泄露,內存將持續消耗,直到再也沒有可用的部分。

    作為替代方案,一種稱為垃圾收集(garbage collector)的自動內存管理方法正在被廣泛使用,尤其是在現代的面向對象語言中。自動內存管理
    使得編寫出更多抽象的接口、更多穩定代碼成為可能。

    垃圾收集避免了懸掛引用問題,因為被某處引用的對象永遠不會被收集,內存不會被釋放。垃圾收集同樣解決了上面提到的內存泄露問題,因為不
    再被引用的內存將自動釋放。
    (譯注:實際上java中依然有“內存泄露”問題,只是這種泄露與上文中提到的傳統上的泄露不同。可以理解為對內存的不恰當使用,會導致垃圾收
    集頻繁發生[本應存儲對象的沒有存儲下來],或OOM錯誤[本來應釋放的內存沒有釋放]。)

    上一篇:JAVA內存管理(一)綜述和介紹
    此文已轉移到:http://www.xiegq.com/2013/09/14/25.html
    posted on 2013-07-22 21:55 hunter129 閱讀(289) 評論(0)  編輯  收藏 所屬分類: java內存管理垃圾收集
    主站蜘蛛池模板: 亚洲乱码中文字幕小综合| 亚洲国产免费综合| mm1313亚洲国产精品美女| h视频在线观看免费| 西西人体44rt高清亚洲| 蜜桃视频在线观看免费网址入口| 欧美日韩亚洲精品| 亚洲精品无码Av人在线观看国产| 人妻视频一区二区三区免费| 无码毛片一区二区三区视频免费播放| 久久亚洲精品成人综合| 波多野结衣中文一区二区免费| 人人揉揉香蕉大免费不卡| 亚洲色欲色欱wwW在线| 亚洲五月综合缴情在线观看| 无码高潮少妇毛多水多水免费| 国产精品美女久久久免费| 亚洲AV无码乱码在线观看代蜜桃| 亚洲午夜未满十八勿入网站2| 插B内射18免费视频| 美女视频黄的免费视频网页| 99亚洲精品卡2卡三卡4卡2卡| 78成人精品电影在线播放日韩精品电影一区亚洲 | 高潮内射免费看片| 亚洲欧洲国产经精品香蕉网| 亚洲男人天堂2020| 国产美女在线精品免费观看| 成人精品一区二区三区不卡免费看| 亚洲综合久久精品无码色欲| 久久精品国产精品亚洲蜜月| 日本无吗免费一二区| 67194国产精品免费观看| 一级一级毛片免费播放| 亚洲日韩一区精品射精| 亚洲男人天堂av| 亚洲乱亚洲乱妇无码麻豆| 亚洲国产婷婷综合在线精品| 女人18毛片水真多免费播放| 精品国产免费人成电影在线观看| 本免费AV无码专区一区| 四虎成人精品国产永久免费无码|