排序
面试题: 什么是 Java 的 AOT(Ahead-Of-Time)?
Java 的 AOT(Ahead-of-time)编译是一种在程序运行之前将代码编译成机器码的技术。与传统的 JIT(Just-In-Time)编译不同,JIT 是在程序运行时将字节码动态编译为机器码,而 AOT 则在程序执行...
面试题:JIT 编译后的代码存在哪?
在 Java 中,JIT(Just-In-Time)编译器将热点代码(频繁执行的字节码)动态编译为本地机器码后,这些编译后的代码会存储在 JVM 的内存区域中,具体来说,是存储在 Code Cache(代码缓存)...
面试题:什么是 Java 中的 JIT(Just-In-Time)?
在 Java 中,JIT(Just-In-Time) 是一种即时编译技术,它是 JVM(Java 虚拟机)的重要组成部分。JIT 的主要作用是将 Java 字节码(Bytecode)动态编译为本地机器码(Native Code),以提...
面试题:你了解 Java 的类加载器吗?
在 Java 中,类加载器(ClassLoader) 是 JVM 的重要组成部分,负责将 .class 文件加载到 JVM 中,并生成对应的 Class 对象。类加载器在 Java 的运行时环境中起着至关...
面试题:什么是 Java 中的常量池?
在 Java 中,常量池(Constant Pool) 是 JVM 运行时数据区中的一部分,用于存储编译期生成的各种字面量和符号引用。常量池是方法区(Method Area)的一部分,主要用于存储类、接口、方法...
面试题:什么是 Java 中的直接内存(堆外内存)?
在 Java 中,直接内存(Direct Memory),也称为堆外内存(Off-Heap Memory),是指由 Java 程序直接分配和管理的内存,但它并不位于 JVM 的堆内存中。直接内存是通过 Java 的 NIO(New Input/O...
面试题:Java 中堆和栈的区别是什么?
在 Java 中,堆(Heap)和栈(Stack)是两种不同的内存区域,用于存储不同类型的数据。它们的主要区别如下: 1. 存储内容 堆: 用于存储对象实例和数组。 所有通过 new 关键字创建的对象...
面试题:JVM 有那几种情况会产生 OOM(内存溢出)?
在 Java 虚拟机(JVM)中,OutOfMemoryError(OOM)是一种常见的运行时错误,表示 JVM 无法分配足够的内存来满足程序的需求。以下是几种常见的 OOM 情况: Java 堆内存溢出(OutOfMemoryError: ...
面试题:JVM 方法区是否会出现内存溢出?
是的,JVM 的方法区(Method Area)会出现内存溢出。方法区是 JVM 内存的重要组成部分,用于存储类的元数据、常量池、静态变量等信息。如果方法区的内存使用超过了其最大限制,就会抛出 Ou...
面试题:JVM 的内存区域是如何划分的?
JVM 的内存区域主要分为以下几个部分,每个部分都有特定的用途和管理方式。以下是 JVM 内存区域的详细划分: 1. 方法区(Method Area) 作用: 存储类的元数据信息,如类名、字段、方法信...