You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Survivor区已满但Eden区仍有空闲时的处理机制及疑问

Java Survivor空间已满但Eden仍有可用内存时的行为

当Survivor空间已满,但Eden空间还有可用内存时,会触发以下流程:

  • 首先触发Minor GC,Eden中存活的对象会被尝试转移到Survivor,但此时Survivor已经满了,所以这些存活对象会直接进入老年代(同时Survivor里的存活对象也会被转移到老年代)。
  • 如果老年代没有足够空间容纳这些对象,JVM会触发Full GC,尝试回收老年代的空间。
  • 若Full GC后老年代还是无法容纳对象,就会抛出OutOfMemoryError。

关于Survivor是否占用Eden空间的内存:
Survivor和Eden是新生代里相互独立的内存区域,JVM启动时就已经为它们划分了固定的内存大小,二者有明确的内存边界,不会出现Survivor占用Eden空间的情况。

内容的提问来源于stack exchange,提问作者Ron Amir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 21:10:28