Java 内存模型中哪些区域可能会产生 OOM?各区域产生 OOM 的原因分别是什么?
考察说明
考察对 Java 运行时内存分区、OOM 触发机制及参数的掌握
回答思路
- 准确列举堆、元空间、虚拟机栈、本地方法栈、直接内存等区域
- 说明堆 OOM 的主要原因是对象无法分配且堆无法扩展
- 区分元空间与永久代的 OOM 原因及参数
- 解释栈溢出 StackOverflowError 与 OOM 的关系
- 提及直接内存 OOM 与 NIO 使用及 -XX:MaxDirectMemorySize 的关联
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。