Java 虚拟机共46篇

JVM 是 Java 程序运行的核心,是性能优化与问题排查的基础。Java 虚拟机面试题的考察重点包括 JVM 的内存区域划分、垃圾回收机制、类加载过程、性能监控与调优、字节码指令、JIT 编译、内存泄漏的分析与排查、以及不同垃圾回收器的应用场景。

面试题:什么是 Java 中的 logging write barrier?

在 Java 中,Logging Write Barrier 是一种用于垃圾收集器(尤其是并发垃圾收集器)的机制,用于在应用程序线程修改对象引用时记录这些修改,以确保垃圾收集器能够正确地跟踪对象图的动态...
程序百科的头像-程序百科程序百科29天前
0386

面试题:Java 中的 CMS 和 G1 垃圾收集器如何维持并发的正确性?

在 Java 中,CMS(Concurrent Mark-Sweep)和 G1(Garbage-First)垃圾收集器都支持并发垃圾回收,即在应用程序运行的同时执行部分垃圾回收工作。为了维持并发的正确性,它们需要解决以下问题:...
程序百科的头像-程序百科程序百科29天前
02711

面试题:为什么 G1 垃圾收集器不维护年轻代到老年代的记忆集?

G1(Garbage-First)垃圾收集器在设计上采用了一种分区(Region)的堆内存管理方式,将堆划分为多个大小相等的区域(Region),每个区域可以是 Eden、Survivor 或 Old 区。G1 的记忆集(Remembe...
程序百科的头像-程序百科程序百科29天前
0286

面试题:Java 的 CMS 垃圾回收器和 G1 垃圾回收器在记忆集的维护上有什么不同?

在 Java 中,CMS(Concurrent Mark-Sweep)和 G1(Garbage-First)是两种常见的垃圾回收器,它们在记忆集(Remembered Set,简称 RSet)的维护上有一些显著的不同。记忆集的主要作用是记录跨代...
程序百科的头像-程序百科程序百科29天前
0236

面试题:JVM 新生代垃圾回收如何避免全堆扫描?

在 JVM 中,新生代垃圾回收主要通过分代收集算法来避免全堆扫描。具体来说,JVM 将堆内存分为新生代(Young Generation)和老年代(Old Generation),新生代又分为 Eden 区、Survivor 0 区和 S...
程序百科的头像-程序百科程序百科29天前
0236

面试题: 为什么 Java 中某些新生代和老年代的垃圾收集器不能组合使用?比如 ParNew 和 Parallel Old

在Java中,年轻代(Young Generation)和老年代(Old Generation)的垃圾收集器(GC)需要协同工作,以确保整个堆内存的高效管理。然而,并不是所有的年轻代和老年代收集器都可以组合使用。某些...
程序百科的头像-程序百科程序百科29天前
0305

面试题:为什么 Java 中 CMS 垃圾收集器在发生 Concurrent Mode Failure 时的 Full GC 是单线程的?

在Java中,CMS垃圾收集器(Concurrent Mark-Sweep)在发生 Concurrent Mode Failure 时触发的 Full GC 是单线程的,主要原因与CMS的设计目标、实现机制以及失败场景的特殊...
程序百科的头像-程序百科程序百科29天前
0409

面试题:JVM 垃圾回收时产生的 concurrent mode failure 的原因是什么?

Concurrent Mode Failure 是Java中CMS垃圾回收器(Concurrent Mark-Sweep)在运行过程中可能遇到的一种失败情况。CMS是一种以低停顿时间为目标的垃圾回收器,它的大部分工作是与应用程序线...
程序百科的头像-程序百科程序百科29天前
0425

面试题:什么是 Java 的 PLAB?

在Java中,PLAB(Promotion Local Allocation Buffer,晋升本地分配缓冲区)是一种用于优化对象从年轻代晋升到老年代的机制。它是并行垃圾回收器(如Parallel Scavenge、G1等)中的一种技术,旨...
程序百科的头像-程序百科程序百科29天前
03811

面试题:什么情况下会触发 Java 的 Full GC?

在Java中,Full GC(全局垃圾回收)是对整个堆内存(包括年轻代、老年代)以及方法区(Metaspace)进行垃圾回收的过程。Full GC的触发条件通常与内存分配失败或垃圾回收策略有关,以下是常见的...
程序百科的头像-程序百科程序百科29天前
03313