Java 虚拟机共46篇

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

面试题:为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?

在Java 8中,永久代(PermGen)被移除,并引入了元空间(Metaspace),这一变化主要是为了解决一些与类元数据存储相关的限制和问题。以下是Java 8做出这一改变的主要原因: 1. 内存管理改进 动...
程序百科的头像-程序百科程序百科1个月前
4712

面试题:为什么 Java 新生代被划分为 S0、S1 和 Eden 区?

Java新生代被划分为三个区域:Eden区(伊甸园区)和两个Survivor区(通常标记为S0和S1),这种划分是基于分代垃圾回收理论和实际应用中的效率考虑。以下是具体原因: 1. 分代假设 弱世代假设:...
程序百科的头像-程序百科程序百科1个月前
4813

面试题:什么是三色标记算法?

三色标记算法(Three-Color Marking Algorithm)是垃圾收集器中用于追踪和管理对象可达性的一种方法。 它主要用于支持并发或增量式垃圾收集,允许垃圾收集过程与应用程序的执行并行进行而不必完...
程序百科的头像-程序百科程序百科1个月前
386

面试题:Java 中的 young GC、old GC、full GC 和 mixed GC 的区别是什么?

在Java的垃圾回收机制中,young GC、old GC、full GC和mixed GC分别指不同的垃圾收集过程,它们针对堆内存的不同区域,并且有不同的触发条件和目标。以下是这些术语的具体含义及其区别: Young ...
程序百科的头像-程序百科程序百科1个月前
339

面试题:什么条件会触发 Java 的 young GC?

Young GC(也称为Minor GC),主要针对的是Java堆中的年轻代(Young Generation)进行垃圾回收。触发Young GC的条件主要包括以下几点: 1. Eden区空间不足 最常见的触发条件:当尝试在Eden区中...
程序百科的头像-程序百科程序百科1个月前
4810

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

在Java中,Full GC指的是对整个堆(包括年轻代、老年代和永久代/元空间)进行垃圾回收的过程。触发Full GC的情况有多种,以下是一些常见的触发条件: 1. 老年代空间不足 当老年代没有足够的空间...
程序百科的头像-程序百科程序百科1个月前
3215

面试题:什么是 Java 的 PLAB?

在Java虚拟机(JVM)的垃圾收集(Garbage Collection, GC)过程中,PLAB指的是Promotion Local Allocation Buffer(晋升本地分配缓冲区)。PLAB主要用于并行垃圾收集器中,特别是在处理年轻代到...
程序百科的头像-程序百科程序百科1个月前
2913

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

在使用CMS(Concurrent Mark-Sweep)垃圾收集器时,'Concurrent Mode Failure'(并发模式失败)是一个重要的概念。这种失败通常发生在CMS尝试以并发模式执行老年代的垃圾回收时,但由于某些原因...
程序百科的头像-程序百科程序百科1个月前
2815

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

当使用CMS(Concurrent Mark-Sweep)垃圾收集器时,'Concurrent Mode Failure' 是指在CMS尝试以并发模式执行老年代的垃圾回收时,由于老年代空间不足而无法完成该过程,导致不得不触发一次Full ...
程序百科的头像-程序百科程序百科1个月前
2215

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

在Java中,某些新生代和老年代的垃圾收集器不能组合使用的原因主要在于它们的设计理念、工作方式以及相互之间的兼容性问题。 以ParNew(并行的新生成代收集器)和Parallel Old(并行的老年代收...
程序百科的头像-程序百科程序百科1个月前
326