Java 虚拟机共46篇

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

面试题:Java 中有哪些垃圾回收算法?

Java中的垃圾回收(GC)机制是自动管理内存的一个重要特性,它通过不同的算法来识别和回收不再使用的对象所占用的内存。以下是几种常见的垃圾回收算法: 标记-清除算法(Mark-Sweep): 这是最...
程序百科的头像-程序百科程序百科11个月前
595

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

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

面试题:你常用哪些工具来分析 JVM 性能?

分析 JVM 性能是优化 Java 应用程序的关键步骤之一。以下是一些常用的工具和技术,它们可以帮助你监控和分析 JVM 的性能: 1. JDK 自带工具 jstat:用于监控JVM的性能统计信息,包括垃圾回收、...
程序百科的头像-程序百科程序百科11个月前
5215

面试题:什么是 Java 中的常量池?

Java中的常量池是一个重要的运行时数据结构,主要用于存储编译期已知的字面量以及动态生成的符号引用等内容。它在类加载、链接和运行过程中扮演着关键角色。常量池主要分为两种类型:静态常量池...
程序百科的头像-程序百科程序百科11个月前
4714

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

CMS(Concurrent Mark-Sweep)和G1(Garbage First)垃圾回收器在记忆集(Remembered Set, RS)的维护上有显著的不同,这些差异主要源于它们的设计目标和实现机制的不同。以下是两者在这方面的...
程序百科的头像-程序百科程序百科11个月前
645

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

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