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

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

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

    tbwshc

    Java內存管理優化筆記

    1. 垃圾回收
      JVM運行環境中垃圾對象的定義:
      一個對象創建后被放置在JVM的堆內存(heap)中,當永遠不再引用這個對象時,它將被JVM在堆內存(heap)中回收。被創建的對象不能再生,同時也沒法通過程序語句釋放它們。
      不可到達的對象被JVM視為垃圾對象,JVM將給這些對象打上標記,然后清掃回收它們,并將散碎的內存單元收集整合。
      JVM管理的兩種類型的內存:
      堆內存(heap),主要存儲程序在運行時創建或實例化的對象與變量。
      棧內存(stack),主要存儲程序代碼中聲明為靜態(static)(或非靜態)的方法。
      堆內存(heap)通常情況下被分為兩個區域:新對象(new object)區域與老對象(old object)區域。
      新對象區域:
      又可細分為Eden區域、From區域與To區域。
      Eden區域保存新創建的對象。當該區域中的對象滿了后,JVM系統將做可達性測試,主要任務是檢測有哪些對象由根集合出發是不可到達的,這些對象就可被JVM回收,且將所有的活動對象從Eden區域拷到To區域,此時有一些對象將發生狀態交換,有的對象就從To區域被轉移到From區域,此時From區域就有了對象。
      該過程執行期間,JVM的性能非常低下,會嚴重影響到正在運行的應用的性能。
      老對象區域:
      在老對象區域中的對象仍有一個較長的生命周期。經過一段時間后,被轉入tb老對象區域的對象就變成了垃圾對象,此時它們被打上相應的標記,JVM將自動回收它們。
      建議不要頻繁強制系統做垃圾回收,因為JVM會利用有限的系統資源,優先完成垃圾回收工作,致使應用無法快速響應來自用戶端的請求,這樣會影響系統的整體性能。
      2. JVM中對象的生命周期
      對象的整個生命周期大致分為7個階段:創建(creation)、應用(using)、不可視(invisible)、不可到達(unreachable)、可收集(collected)、終結(finalized)、釋放(free)。
      1) 創建階段
      系統通過下面步驟,完成對象的創建:
      a) 為對象分配存儲空間
      b) 開始構造對象
      c) 遞歸調用其超類的構造方法
      d) 進行對象實例初始化與變量初始化
      e) 執行構造方法體
      在創建對象時的幾個關鍵應用規則:
      避免在循環體中創建對象,即使該對象占用內存空間不大
      盡量及時使對象符合垃圾回收標準
      不要采用過深的繼承層次
      訪問本地變量優于訪問類中的變量

    posted on 2013-06-28 16:59 chen11-1 閱讀(242) 評論(0)  編輯  收藏 所屬分類: 隨筆

    主站蜘蛛池模板: 无码精品A∨在线观看免费| 日韩插啊免费视频在线观看| 最近中文字幕无免费视频| 亚洲电影在线免费观看| 18禁止观看免费私人影院| 亚洲成人黄色在线观看| 日本片免费观看一区二区| 亚洲小说区图片区| 女人18一级毛片免费观看| 亚洲乱码av中文一区二区| 无码人妻一区二区三区免费| 亚洲色大网站WWW永久网站| 最新69国产成人精品免费视频动漫| 亚洲精品天堂成人片AV在线播放| 国产无遮挡色视频免费视频| 污视频网站免费观看| 国内精品久久久久久久亚洲| 久久久久久久久久国产精品免费 | 无码国模国产在线观看免费| 美女免费视频一区二区| 亚洲人成在线播放网站| 67pao强力打造国产免费| 亚洲色在线无码国产精品不卡 | 国内精品乱码卡1卡2卡3免费 | 亚洲AV一宅男色影视| 久久久久久久免费视频| 337P日本欧洲亚洲大胆艺术图| 亚洲综合AV在线在线播放| 1000部拍拍拍18勿入免费视频下载| 亚洲一区二区三区无码国产| 亚洲高清偷拍一区二区三区| 爽爽爽爽爽爽爽成人免费观看| 亚洲精品美女久久久久9999| 国产免费私拍一区二区三区| 国产日韩一区二区三免费高清| 亚洲一级毛片在线观| 亚洲片国产一区一级在线观看| 三年片在线观看免费观看大全一| 亚洲砖码砖专无区2023| 中文字幕亚洲日本岛国片| 在线永久免费的视频草莓|