4、堆内存解析_堆内存和栈内存图解

4、堆内存解析_堆内存和栈内存图解堆分为年轻代和老年代,分别占三分之一和三分之二

图片来源B站,UID1126714340

堆分为年轻代和老年代,分别占三分之一和三分之二。

年轻代分为两个区尹甸园区与survivor区Ava
当尹甸园区有很多对象放不下时,Java会的字节码会开启一个垃圾收集线程(minor gc),来收集内存区域的垃圾对象。在这里插入图片描述

  1. 垃圾收集用可达性分析算法。判断出垃圾和非垃圾,将非垃圾放到Survivor区经历一次minor gc,就会加一代,等到15代,还没有被回收,移动到老年代区域。

  2. 另外在前面survivor区移动的对象,比如从survivor-1移动survivor-2区,2区放不下,一部分对象直接被移动到老年代区。将尹甸园区的垃圾对象清空。放新对象。

  3. 当老年代内存满了以后,不是马上内存溢出,做一次full gc。如果老年代区域依然满了,出现内存溢出(OOM)
    在这里插入图片描述

  • 调优工具
    jvisualvm
    Arthas

今天的文章4、堆内存解析_堆内存和栈内存图解分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68439.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注