- 首先尝试在栈上分配,如果分配不下,进入堆内存。
- 进入堆内存之后,如果对象大小超过年轻代大小,则会直接进入Old区。
- 如果小于,则会尝试在线程TLAB区分配,如果分配不下,进入Eden区。
- 进入Eden区之后,经过一次YGC之后,活着的对象进入Survior0区。
- 再次YGC,Eden +Survior0区活着的对象进入Survior1区。
- 再次YGC,Eden +Survior1区活着的对象进入Survior0区。
- 对象年龄足够(Parallel Scavenge —>15 ,CMS—>5,G1——>15),进入Old区。
相关文章
- 01-05GC执行finalize的过程以及对象的一次自我拯救
- 01-05对象创建的过程(重点理解)
- 01-05JNA释放Memory对象分配的内存
- 01-05java – 为什么它在子类对象中为超类变量存储或分配内存?
- 01-05jvm-对象的创建和分配和垃圾回收
- 01-05Java 类和对象在内存中的表现形式,栈、堆、方法区、常量池
- 01-05【Kafka的Controller选举机制/分区副本选举Leader机制/消费消息的offset记录机制/Rebalance过程与机制以及分区分配策略/发布消息机制/HW与LEO/日志分段存储】
- 01-05关于Java查询数据库,存在对象中的内容却为null的一种解决办法
- 01-05元类,对象实列化的过程__new__ 和 __init__
- 01-05essential C++中关于面向过程和面向对象的说明