Java 的垃圾回收(Garbage Collection, GC)机制是 Java 语言的一大特性,它负责自动管理内存,包括分配和释放内存。GC 主要涉及垃圾收集算法和垃圾收集器两大部分。以下是 Java GC 的主要种类及其实现方式:垃圾收集算法标记-清除(Mark-Sweep)算法 实现原理:标记阶段:遍历堆内存中的所有对象,通过可达性...
4:分代收集算法 过程:将堆分为新生代和老年代,根据区域特点选用不同的收集算法,如果新生代朝生夕死,则采用复制算法,老年代采用标记清除,或标记整理 面试的话说出来这四种足够了
可达性分析法:从GC Roots出发,如果无法通过GC Roots的引用追踪到的对象,则被视为垃圾。GC Roots包括虚拟机栈中的本地变量、方法区中的静态属性引用、常量引用、本地方法引用等。垃圾回收算法:标记清除法:标记内存中的活对象,然后清除未标记的对象。此方法适合存活对象多、回收对象少的场景,但会产...
引用计数法:给对象添加一个引用计数器,每有一个地方引用它,计数器加一;引用失效则减一。计数器为0的对象即不再被使用。但该方法存在互相引用导致无法回收的问题。可达性算法:通过一系列称为“GC Roots”的对象作为起点,向下搜索形成的引用链。当一个对象到GC Roots没有任何引用链相连时,证明此...
Java 垃圾回收(Garbage Collection, GC)算法是 Java 虚拟机(JVM)用于自动管理内存的重要组件。可达性分析算法是垃圾回收过程中的一个关键环节,它决定了哪些对象可以被回收。而具体的垃圾回收算法则决定了如何高效地回收这些对象所占用的内存空间。常见的 Java 垃圾回收算法包括标记-清除(Mark-Sweep)、...