美文网首页
对象在年轻代的移动过程

对象在年轻代的移动过程

作者: 倚仗听江 | 来源:发表于2022-02-20 11:27 被阅读0次

JVM刚启动时,新创建的对象先在eden区分配,第一次MGC时,eden区中存活的对象年龄加1,并移动到S0区。第二次MGC时,eden区和S0区中存活的对象年龄各加1,并将eden区和S0区存活的对象都移动到S1区,清空eden区和S0区,将S1区和S0区的角色互换(是角色互换而不是内存数据的复制)。接下来的MGC都是这样,同时回收eden区和S0区,将存活的对象移动到S1区,清空eden区和S0区,将S1区和S0区的角色互换。

S区的存在是为了容纳eden区垃圾收集后的存活对象,接收完这些存活对象后可以清空eden区为下一次对象创建做准备。而有两个S区(S0区和S1区)的意义就是eden区和S0区之间需要一个缓冲的内存,来承载eden区和S0区存活的对象,这样也能避免eden区和S0区的空间碎片化(基于标记复制算法)。

相关文章

  • 对象在年轻代的移动过程

    JVM刚启动时,新创建的对象先在eden区分配,第一次MGC时,eden区中存活的对象年龄加1,并移动到S0区。第...

  • 对象创建,对象结构,访问

    1,对象创建过程 分配:指针移动和空闲列表初始化内部属性后设置对象 头信息 :对象分代年龄 hashcode 元...

  • VMware Ubuntu光标闪烁

    问题现象:鼠标光标在移动过程中消失,停止移动出现 机器:11代intel 原因:11代intel集显驱动 解决办法...

  • gc初步了解2

    年轻代,老年代,永久代(Metaspace )存放什么对象? heap包含年轻代和老年代,永久代是另一块内存; 年...

  • 垃圾回收的整个过程

    过程描述 优先在eden分配 大对象直接进去老年代 年轻代分配失败 进行minor gc minor gc前会 老...

  • JVM监控工具

    通过JVM监控,我们可以了解GC的内部过程,知道什么时候新生代的对象被移动到老年代,什么时候发生了GC,以及GC持...

  • JVM堆内存和持久代

    JVM堆内存分为 年轻代 1)所有新生成的对象首先放到年轻代。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对...

  • 垃圾回收浅谈

    GC机制 在对象回收中对象会被划分成三个部分,年轻代、年老代和持久代三个部分。当我们new 对象的时候首先会存放在...

  • 10-年轻代和老年代

    年轻代和老年代 存储在JVM中的Java对象可以被划分为两类: ➷ 一类是生命周期较短的瞬时对象,这类对象的创建和...

  • 鼠标控制旋转

    鼠标在PC端移动,实现对象的旋转;手指在安卓端移动,实现对象的旋转。

网友评论

      本文标题:对象在年轻代的移动过程

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