美文网首页
【Java JVM】对象如何进入老年代

【Java JVM】对象如何进入老年代

作者: itbird01 | 来源:发表于2022-02-26 07:10 被阅读0次

正常我们创建一个对象,都会直接进入新生代的Eden区,那一个对象有哪几种方法可以进入老年代呢?

对象进入老年代,有三种情况:
1.占用内存较大的对象,直接进入老年代,这个“大”由参数-XX:PretenureSizeThreshold来决定,超过这个参数设置的值就直接进入老年代,例如很长的字符串、很大的数组。
2.正常创建一个对象,对象内存布局,包含三部分信息(对象头、实例数据、对齐数据),对象头中存储的就是两部分信息,一部分是对象的运行时数据(GC年龄、锁信息等),一部分是类型指针,GC年龄在对象初始化时,为1,每经过一次minorGC年龄增1,达到系统设置XX:MaxTenuringThreshold年龄值之后,进入老年代
3.当一个对象从Eden区到了Survivor区,当 Survivor 空间中相同年龄所有对象的大小总和大于 Survivor 空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,而不需要达到默认的分代年龄

相关文章

  • 【Java JVM】对象如何进入老年代

    正常我们创建一个对象,都会直接进入新生代的Eden区,那一个对象有哪几种方法可以进入老年代呢? 对象进入老年代,有...

  • 【问答】补充

    Java JVM如何管理内存的? Java中内存管理是JVM自动进行的,创建对象或者变量时JVM会自动分配内存,当...

  • 优化老年代参数的分析思路

    老年代优化的基调 :避免对象过快进入老年代进而思考=> 什么情况对象会进入老年代?=> 什么情况对象会提前进入老...

  • 2020-07-19

    Jvm=>JMM对象内存分配模型 (1),对象(数组)优先分配在Eden (2),大对象直接进入老年代 (3),长...

  • JVM(八):Java 对象模型

    JVM(八):Java 对象模型 本文将学习对象是如何创建的,对象的内存布局,以及如何定位访问一个对象。 对象创建...

  • Java 最近遇到的面试题

    JAVA 基础 java 对象拷贝深浅拷贝 对象何时进入老年代 Minor GC 和 Full GC 有什么不同 ...

  • 浅谈Java对象的生与死

    Java对象在JVM中如何分配?分配在哪个地方?Java有自动内存管理机制,那它是怎么判定一个对象是垃圾对象的?以...

  • 对象进入老年代的四种情况

    1.存活对象达到年龄阈值(默认为15)2.大对象直接进入老年代(超过了JVM中-XX:PretenureSizeT...

  • Synchronize的实现原理

    1 Java对象头信息 Java对象在JVM中的结构如下: java对象包括: Mark Word(存储对象的ha...

  • java:JVM总结

    JVM知识总结 新生代,老年代是啥? 是堆。新建的对象在新生代,对象活了很多次gc后,会进入老年代。 新生代为何有...

网友评论

      本文标题:【Java JVM】对象如何进入老年代

      本文链接:https://www.haomeiwen.com/subject/xmgehrtx.html