文章目錄
1、堆的核心概述
2、設置堆內存大小與OOM
- 開發中建議將初始堆內存和最大的堆內存設置爲相同的值
- 查看設置的參數:
方式一:jps / jstat -gc 進程id
方式二:-XX:PrintGCDetails
jps指令是jdk中bin目錄下的一個指令,做用是查看當前程序運行的進程
jstat指令是用來查看jvm在GC的時候的統計信息,現實想看的進程的內存使用狀況
jvm
3、年輕代與老年代
jinfo -flag NewRatio 進程id //查看新生代和老年代的比例spa
4、圖解對象分配過程
當伊甸園區滿的時候,會觸發垃圾回收器:YGC/Minor GC
注意:倖存者區滿的時候不會觸發YGC,但不表明不會回收,當伊甸園區滿的時候觸發了YGC,此時若倖存者區存在對象再也不被引用,這時也會回收該區的垃圾對象。
3d
5、Minor GC、Major GC、Full GC
6、堆空間分代思想
7、內存分配策略
8、爲對象分配內存:TLAB
9、小結堆空間的參數設置
10、堆是分配對象的惟一選擇嗎?
結論:開發中能使用局部變量的,就不要使用在方法外定義。
對象