Python
老年代 标签描述

    目录如下: 什么是JVM的堆 是不是所有的Java对象都放在堆上? 线程和堆的关系 堆的内部结构 面试题 新生代与老年代 如何设置堆的大小? 新生代与老年代的比例 设置Eden、幸存者的比例 常用参数 对象分配 金句: 分配过程 内存分配策略(或对象提升(promotion)规则): 对象分配原则 MinorGC、MajorGC、FullGC MinorGC触发机制 老年代GC(MajorGC/FullGC)触发机制: FullGC触发机制: OOM如何解决 为什么需要把Java堆分代?不分代就不能正常工作了吗? 什么是TLAB(快速分配策略)? 为什么有TLAB...

  01BFOGI7NzGp   2023年12月01日   19   0   0 JVMjavaJavajvm老年代老年代

Java内存分配与回收策略以及MinorGC和MajorGC(FullGC)是Java虚拟机(JVM)中与内存管理相关的重要概念。 Java内存分配与回收策略: 对象的分配:Java中的对象通常在堆内存中分配。堆内存被划分为不同的区域,其中最常见的是新生代(YoungGeneration)和老年代(OldGeneration)。 新生代分配:新创建的对象首先被分配到新生代的Eden区域。当Eden区域满时,会触发MinorGC,将存活的对象复制到存活区域(Survivor)中。 对象晋升:经过多次MinorGC后,仍然存活的对象会被晋升到老年代。晋升条件可以是对象年龄达到一定阈值或者Sur...

垃圾回收时先把eden区存活对象复制到S0区,然后清空eden区,当S0区也满时,再将eden区和S0区存活对象复制到S1区,然后清空eden和SO区,之后交换S0区和S1区的角色,当S1区无法存放eden区和S0区的存活对象时,就将存活对象直接存移到老年代区,当老年代区也满了,触发这一次FullGC,即新生代、老年代都进行回收。