充分的了解下JVM运行时内存管理与分配

2022-07-27,,,,

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

《充分的了解下JVM运行时内存管理与分配.doc》

下载本文的Word格式文档,以方便收藏与打印。