/*

      首先介绍一下JVM中堆内存的组成:
  
       JVM堆内存主要由三部分组成:
         (1)新生代:
               伊甸园区,存活区,伸缩区
         (2)老年代:
               老年区,伸缩区
         (3)元空间(永久代):
               元空间,伸缩区




注意:JDK1.8以后,永久代被称作元空间:直接使用物理内存 GC流程: (1)新生对象在新生代的伊甸园区开辟空间,如果伊甸园区的内存空间不足,则发生MinorGC,进行垃圾回收处理,然后再判断处理之后的内存空间是否充足,
如果充足,则将新生对象存放在伊甸园区,否则将继续判断存活区的内存空间 (2)如果存活区的内存空间充足,则将伊甸园区的部分活跃对象直接存放在存活区内,如果存活区也没有多余的内存空间,那么将继续判断老年区的内存空间 (3)如果老年区的内存空间充足,则将伊甸园区的部分活跃对象存在老年区中,如果老年区也没有多余的内存空间,那么将会发生MajorGC(FullGC),
然后判断老年区是否有多余的内存空间,如果有多余的空间,则可以将对象保存在老年区。否则将会产生OOM(OutOfMemoryError)异常
年轻代:采用复制算法(将活跃对象复制到完全未使用的内存空间中,然后对需要垃圾回收的对象进行GC处理)
老年代:采用整理-压缩算法(将需要回收的对象进行整理-压缩)

注意:GC处理只针对新生代和老年代,元空间(永久代)不在GC控制范围内
*/

  

相关文章:

  • 2021-10-25
  • 2021-09-14
  • 2022-01-18
  • 2021-09-16
  • 2021-08-29
  • 2021-11-20
  • 2021-08-14
  • 2021-09-29
猜你喜欢
  • 2021-07-08
  • 2021-11-24
  • 2021-10-22
  • 2022-01-10
  • 2021-07-20
  • 2022-01-08
  • 2021-09-16
相关资源
相似解决方案