排序
面试题:为什么 Java 中 CMS 垃圾收集器在发生 Concurrent Mode Failure 时的 Full GC 是单线程的?
在Java中,CMS垃圾收集器(Concurrent Mark-Sweep)在发生 Concurrent Mode Failure 时触发的 Full GC 是单线程的,主要原因与CMS的设计目标、实现机制以及失败场景的特殊...
面试题:JVM 垃圾回收时产生的 concurrent mode failure 的原因是什么?
Concurrent Mode Failure 是Java中CMS垃圾回收器(Concurrent Mark-Sweep)在运行过程中可能遇到的一种失败情况。CMS是一种以低停顿时间为目标的垃圾回收器,它的大部分工作是与应用程序线...
面试题:什么是 Java 的 PLAB?
在Java中,PLAB(Promotion Local Allocation Buffer,晋升本地分配缓冲区)是一种用于优化对象从年轻代晋升到老年代的机制。它是并行垃圾回收器(如Parallel Scavenge、G1等)中的一种技术,旨...
面试题:什么情况下会触发 Java 的 Full GC?
在Java中,Full GC(全局垃圾回收)是对整个堆内存(包括年轻代、老年代)以及方法区(Metaspace)进行垃圾回收的过程。Full GC的触发条件通常与内存分配失败或垃圾回收策略有关,以下是常见的...
面试题:什么条件会触发 Java 的 young GC?
在Java中,Young GC(年轻代垃圾回收)的触发条件主要与年轻代(Young Generation)的内存使用情况有关。年轻代包括Eden区和两个Survivor区(S0和S1)。以下是触发Young GC的具体条件: 触发条...
面试题:Java 中的 young GC、old GC、full GC 和 mixed GC 的区别是什么?
在Java中,垃圾回收(GC)是自动内存管理的关键部分。不同的GC类型针对不同的内存区域和场景。以下是young GC、old GC、full GC和mixed GC的区别: 1. Young GC(年轻代GC) 目标区域:年...
面试题:什么是三色标记算法?
三色标记算法(Tri-color Marking Algorithm) 是一种用于垃圾回收的标记算法,主要用于追踪和标记存活对象。它是现代垃圾回收器(如 G1、CMS、ZGC 等)的核心算法之一。三色标记算法通过...
面试题:为什么 Java 新生代被划分为 S0、S1 和 Eden 区?
Java 新生代被划分为 Eden 区 和两个 Survivor 区(S0 和 S1),这种设计是为了优化垃圾回收的效率,减少内存碎片,并提高内存利用率。以下是这种划分的具体原因和优势: 1.&nbs...
面试题:为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?
在 Java 8 中,永久代(PermGen)被移除,取而代之的是元空间(Metaspace)。这一变化主要是为了解决永久代的一些固有缺陷,并提升 JVM 的内存管理效率。以下是永久代被移除以及元空间引入的原...
面试题:为什么 Java 的垃圾收集器将堆分为老年代和新生代?
Java 的垃圾收集器将堆内存分为 老年代(Old Generation) 和 新生代(Young Generation),主要是基于以下两个核心观察和假设: 1. 弱分代假设(Weak Generational Hypoth...