java对象分配过程

1.编译器通过逃逸分析判断对象是在栈上分配还是堆上分配,如果是堆上分配则进入下一步。(开启逃逸分析需要设置jvm参数)

2.如果tlab可以放下该对象则在tlab上分配,否则进入下一步。

3.重新申请一个tlab,再尝试存放该对象,如果放不下则进入下一步。

4.在eden区加锁,尝试在eden区存放,若存放不下则进入下一步。

5.执行一次Young GC。

6.Young GC后若eden区仍放不下该对象,则直接在老年代分配。

你可能感兴趣的:(java对象分配过程)