JVM对象内存分配与回收方法

介绍

这篇文章主要介绍”JVM对象内存分配与回收方法”,在日常操作中,相信很多人在JVM对象内存分配与回收方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“JVM对象内存分配与回收方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

对象优先在伊甸园上分配

大多数情况下,对象优先在新生代伊甸园区域中分配。当伊甸园内存区域没有足够的空间进行分配时,虚拟机将触发一次,轻微的GC(新生代GC) .Minor GC期间虚拟机将伊甸园区域的对象移动到其中一块幸存者区域。

 JVM对象内存分配与回收方法


大对象直接进入老年代

所谓大对象是指需要大量连续空间的对象。虚拟机提供了一个XX: PretenureSizeThreshold参数,令大于这个值的对象直接在老年代中分配。

长期存活的对象将进入老年代

虚拟机采用分代收集的思想管理内存,那内存回收时就必须能识别那些对象该放到新生代,那些该到老年代中。为了做到这点,虚拟机为每个对象定义了一个对象年龄年龄,每经过一次新生代GC后任然存活,将对象的年龄年龄增加1岁,当年龄到一定程度(默认为15)时,将会被晋升到老年代中,对象晋升老年代的年龄限定值,可通过- XX: MaxTenuringThreshold来设置。

小完整GC和GC区别

新生代GC(小GC):指发生在新生代的垃圾收集动作,因为对象大多都具备朝生夕灭特性,所以小GC非常频繁,回收速度也比较快。

老年代垃圾收集(GC/Major 完整GC):指发生在老年代中的GC,出现Major  GC后,经常会伴随至少一次的小GC.Major  GC的速度一般会比小GC慢十倍以上

到此,关于“JVM对象内存分配与回收方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

JVM对象内存分配与回收方法