排序
面试题: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) 作用: 存储类的元数据信息,如类名、字段、方法信...
面试题:编译执行与解释执行的区别是什么?JVM 使用哪种方式?
1. 编译执行与解释执行的区别 特性编译执行解释执行定义将源代码一次性编译成目标平台的机器码,然后执行。逐行读取源代码,边解释边执行。执行速度执行速度快,因为直接运行机器码。执行...
面试题:JVM 由哪些部分组成?
JVM(Java Virtual Machine,Java 虚拟机)是 Java 程序运行的核心环境,它负责将 Java 字节码翻译成机器指令并执行。JVM 主要由以下几个部分组成: 1. 类加载器子系统(Class Loader Subs...
面试题:Java 是如何实现跨平台的?
Java 实现跨平台的核心在于 “一次编写,到处运行” 的理念,这主要依赖于以下几个关键技术和机制: 1. Java 虚拟机(JVM) JVM 的作用: JVM 是 Java 跨平台的基石。它是一个抽...
面试题:JVM 的 TLAB(Thread-Local Allocation Buffer)是什么?
TLAB(Thread-Local Allocation Buffer)是 JVM 中用于提升对象分配效率的一种机制。它是堆内存中的一块线程私有的缓冲区,每个线程在分配对象时,会优先在自己的 TLAB 中分配内存,从而避免多...
面试题:Java 中有哪些垃圾回收算法?
Java 中的垃圾回收(Garbage Collection, GC)算法是 JVM 自动管理内存的核心机制。以下是 Java 中常见的垃圾回收算法: 1. 标记-清除算法(Mark-Sweep) 原理: 分为两个阶段:标记阶段和...
面试题:G1 相对于 CMS 有哪些进步的地方?
G1(Garbage-First)垃圾收集器相较于 CMS(Concurrent Mark-Sweep)垃圾收集器,在多个方面都有显著的进步。以下是 G1 相对于 CMS 的主要改进点: 分区模型: G1 将堆内存划分为多个大小相等的...