Java 虚拟机共46篇

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

面试题: 什么是 Java 的 AOT(Ahead-Of-Time)?

Java 的 AOT(Ahead-of-time)编译是一种在程序运行之前将代码编译成机器码的技术。与传统的 JIT(Just-In-Time)编译不同,JIT 是在程序运行时将字节码动态编译为机器码,而 AOT 则在程序执行...
程序百科的头像-程序百科程序百科35天前
03815

面试题:JIT 编译后的代码存在哪?

在 Java 中,JIT(Just-In-Time)编译器将热点代码(频繁执行的字节码)动态编译为本地机器码后,这些编译后的代码会存储在 JVM 的内存区域中,具体来说,是存储在 Code Cache(代码缓存)...
程序百科的头像-程序百科程序百科1个月前
03111

面试题:什么是 Java 中的 JIT(Just-In-Time)?

在 Java 中,JIT(Just-In-Time) 是一种即时编译技术,它是 JVM(Java 虚拟机)的重要组成部分。JIT 的主要作用是将 Java 字节码(Bytecode)动态编译为本地机器码(Native Code),以提...
程序百科的头像-程序百科程序百科1个月前
04914

面试题:你了解 Java 的类加载器吗?

在 Java 中,类加载器(ClassLoader) 是 JVM 的重要组成部分,负责将 .class 文件加载到 JVM 中,并生成对应的 Class 对象。类加载器在 Java 的运行时环境中起着至关...
程序百科的头像-程序百科程序百科1个月前
0227

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

在 Java 中,常量池(Constant Pool) 是 JVM 运行时数据区中的一部分,用于存储编译期生成的各种字面量和符号引用。常量池是方法区(Method Area)的一部分,主要用于存储类、接口、方法...
程序百科的头像-程序百科程序百科1个月前
0228

面试题:什么是 Java 中的直接内存(堆外内存)?

在 Java 中,直接内存(Direct Memory),也称为堆外内存(Off-Heap Memory),是指由 Java 程序直接分配和管理的内存,但它并不位于 JVM 的堆内存中。直接内存是通过 Java 的 NIO(New Input/O...
程序百科的头像-程序百科程序百科1个月前
0348

面试题:Java 中堆和栈的区别是什么?

在 Java 中,堆(Heap)和栈(Stack)是两种不同的内存区域,用于存储不同类型的数据。它们的主要区别如下: 1. 存储内容 堆: 用于存储对象实例和数组。 所有通过 new 关键字创建的对象...
程序百科的头像-程序百科程序百科1个月前
03810

面试题:JVM 有那几种情况会产生 OOM(内存溢出)?

在 Java 虚拟机(JVM)中,OutOfMemoryError(OOM)是一种常见的运行时错误,表示 JVM 无法分配足够的内存来满足程序的需求。以下是几种常见的 OOM 情况: Java 堆内存溢出(OutOfMemoryError: ...
程序百科的头像-程序百科程序百科1个月前
0329

面试题:JVM 方法区是否会出现内存溢出?

是的,JVM 的方法区(Method Area)会出现内存溢出。方法区是 JVM 内存的重要组成部分,用于存储类的元数据、常量池、静态变量等信息。如果方法区的内存使用超过了其最大限制,就会抛出 Ou...
程序百科的头像-程序百科程序百科1个月前
02110

面试题:JVM 的内存区域是如何划分的?

JVM 的内存区域主要分为以下几个部分,每个部分都有特定的用途和管理方式。以下是 JVM 内存区域的详细划分: 1. 方法区(Method Area) 作用: 存储类的元数据信息,如类名、字段、方法信...
程序百科的头像-程序百科程序百科1个月前
0497