> 文章列表 > JVM|为对象分配内存空间的流程

JVM|为对象分配内存空间的流程

JVM|为对象分配内存空间的流程

1. Eden是否能装下对象
1.1 如果可以,则装入新对象;
1.2 如果不可以,则发动minor gc;

2. minor gc后Eden空间是否能装下新对象?
2.1 如果可以,装入新对象;
2.2 如果不可以,此对象为大对象,可以直接装入老年代 -> 4;

3. minor gc新生代所有的对象是否能在s1ors2装下?
3.1 如果不能,将一部分对象装入老年代 -> 4;
3.2 如果可以,则全部装入to区。

4. 老年代是否能装下?
4.1 能装下,装入老年代;
4.2 装不下,发动full gc;
4.2.1 还是装不下,oom;
4.2.2 能装下,装入老年代;