JVM學習筆記七--堆


一、堆的核心概述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述




二、設置堆內存大小與OOM

在這裏插入圖片描述

  1. 開發中建議將初始堆內存和最大的堆內存設置爲相同的值
  2. 查看設置的參數:
    方式一:jps / jstat -gc 進程id
    方式二:-XX:PrintGCDetails

jps指令是jdk中bin目錄下的一個指令,作用是查看當前程序運行的進程
jstat指令是用來查看jvm在GC的時候的統計信息,現實想看的進程的內存使用情況
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述



三、年輕代與老年代

在這裏插入圖片描述
在這裏插入圖片描述

jinfo -flag NewRatio 進程id //查看新生代和老年代的比例

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

四、圖解對象分配過程

在這裏插入圖片描述
在這裏插入圖片描述
當伊甸園區滿的時候,會觸發垃圾回收器:YGC/Minor GC
注意:倖存者區滿的時候不會觸發YGC,但不代表不會回收,當伊甸園區滿的時候觸發了YGC,此時若倖存者區存在對象不再被引用,這時也會回收該區的垃圾對象。


在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

五、Minor GC、Major GC、Full GC

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述



六、堆空間分代思想

在這裏插入圖片描述
在這裏插入圖片描述

七、內存分配策略

在這裏插入圖片描述
在這裏插入圖片描述

八、爲對象分配內存:TLAB

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述



九、小結堆空間的參數設置

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

十、堆是分配對象的唯一選擇嗎?

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
結論:開發中能使用局部變量的,就不要使用在方法外定義。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章