<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內存管理垃圾收集
    主站蜘蛛池模板: 亚洲码和欧洲码一码二码三码| 亚洲美女激情视频| 国产精品无码亚洲精品2021| 一色屋成人免费精品网站| 亚洲天堂在线播放| 91福利视频免费观看| 精品无码一区二区三区亚洲桃色| 外国成人网在线观看免费视频| 久久精品国产亚洲AV果冻传媒| 久爱免费观看在线网站| 91在线亚洲精品专区| 国产在线观看麻豆91精品免费| 亚洲福利一区二区三区| 在线观看av永久免费| 国产精品亚洲一区二区在线观看 | 亚洲精彩视频在线观看| 最近2018中文字幕免费视频 | 免费国产高清视频| 免费观看亚洲人成网站| 久久精品国产精品亚洲下载| 西西人体免费视频| 亚洲综合日韩中文字幕v在线| 无码乱肉视频免费大全合集 | 亚洲人和日本人jizz| 国产成人无码免费看视频软件| 亚洲中文无码卡通动漫野外| 国产一级一片免费播放i| 又黄又大的激情视频在线观看免费视频社区在线 | 拍拍拍无挡视频免费观看1000| 亚洲短视频男人的影院| 美女视频黄的全免费视频| 亚洲AV无码一区二区大桥未久| 国产亚洲精品激情都市| 8888四色奇米在线观看免费看| 亚洲人成人网毛片在线播放| 国产嫩草影院精品免费网址| 曰批全过程免费视频在线观看无码| 亚洲午夜在线一区| 亚洲JIZZJIZZ中国少妇中文| 暖暖日本免费中文字幕| 亚洲日韩AV无码一区二区三区人|