5.4图解对象分配过程
5.4图解对象分配过程
对象分配过程概述:
1.new的对象放在伊甸园区,此区大小有限制。
2.当伊甸园区的空间填满时,程序有需要创建对象,JVM的垃圾回收器将对伊甸园区进行垃圾回收(Minor GC),将伊甸园区中的不再被其他对象所引用的对象进行销毁。再加载新的对象放在伊甸园区。
3.然后将伊甸园区中的剩余对象移动到幸存者0区。
4.如果再次触发垃圾回收,此时上次幸存下来放在幸存者0区的对象,如果没有被回收,就会放到幸存者1区。
5.如果再次经历垃圾回收,此时会重新放回幸存者0区,接着再去幸存者1区。
6.啥时候去养老区?可以设置次数(对象年龄)。默认是15次。
可以设置参数:-XX:MaxTenuringThreshold=
进行设置
7.当养老区内存不足时,再次触发GC:Major GC,进行养老区的内存清理。
8.若养老区执行了Major GC之后发现依然无法进行对象的保存,就会产生OOM异常。
java.lang.OutOfMemoryError:Java heap space
总结:
针对幸存者s0,s1区的总结:复制之后有交换,谁空谁是to。
关于垃圾回收:频繁在新生区收集,很少在养老区收集,几乎不在永久区/元空间收集。
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/15426687.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步