充分的了解下JVM运行时内存管理与分配
程序员文章站
2022-04-15 18:29:21
JVM运行是内存Java堆从GC的角度可以细分为:新生代( Eden 区 、 From Survivor 区 和 To Survivor 区)和老年代新生代用来存放新生的对象,占据堆的1/3空间。由于频繁创建对象,会频繁触发MinorGC进行垃圾回收Eden 区java新生对象的出生地如果创建的对象占用的内存很大,直接分配到老年代当Eden区内存不够的时候就会触发MinorGC,对新生代进行一次垃圾回收ServivorFrom上一次GC的幸存者,作为这次GC的被扫描者Ser...
JVM运行时内存
Java堆从GC的角度可以细分为:新生代( Eden 区 、 From Survivor 区 和 To Survivor 区)和老年代
新生代
- 用来存放新生的对象,占据堆的1/3空间。
- 由于频繁创建对象,会频繁触发MinorGC进行垃圾回收
Eden 区
- java新生对象的出生地
- 如果创建的对象占用的内存很大,直接分配到老年代
- 当Eden区内存不够的时候就会触发MinorGC,对新生代进行一次垃圾回收
ServivorFrom
- 上一次GC的幸存者,作为这次GC的被扫描者
ServivorTo
- 保留了一次MinorGC中的幸存者
MinorGC的过程(复制->清空->互换)
- eden 、 servicorFrom 复制到 ServicorTo,对象年龄+1(若对象的年龄到达老年区的标准或者ServicorTo的内存不够位置,则直接赋值到来年代)
- 清空 eden 、 servicorFrom
- ServicorTo 和 ServicorFrom 互换
本文地址:https://blog.csdn.net/weixin_41747224/article/details/110228311
上一篇: 夏侯惇:唯一可以*出入曹操寝室的大将
下一篇: 女人很少去诱惑不成功的男人