一、JVM内存结构快速复盘
1.1 运行时数据区核心架构
JVM Memory
线程私有区
线程共享区
程序计数器
虚拟机栈
本地方法栈
堆内存
方法区/元空间
1.2 各区域默认容量(JDK8)
| 内存区域 | 默认最大值 | 调整参数 |
|---|---|---|
| 堆内存(Heap) | 物理内存1/4 | -Xmx |
| 元空间(Metaspace) | 无限制(受物理内存约束) | -XX:MaxMetaspaceSize |
| 栈内存(Stack) | 1MB(不同OS有差异) | -Xss |
| 直接内存(Direct) | ≈堆最大容量 | -XX:MaxDirectMemorySize |
二、OOM七大经典场景解析
2.1 堆内存溢出(Java Heap Space)
触发条件:
-
对象数量超过
-Xmx设置的最大堆值 -
GC后内存仍无法满足新对象分配
错误示例特征:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

最低0.47元/天 解锁文章
1867

被折叠的 条评论
为什么被折叠?



