1、OOM异常(OutOfMemoryError)
如图一,Java虚拟机栈、本地方法栈、Java堆、方法区、直接内存都有可能抛出OOM异常。每个区的异常诊断和处理方法都不一样。
1.1、Java虚拟机栈和本地方法栈
异常信息:
1 | java.lang.OutOfMemoryError:Java heap space |
解决方法:
- 虚拟机参数:
-XX:+HeapDumpOnOutOfMemoryError
,让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照来分析; - 使用内存映像分析工具分析堆转储快照,确认内存中的对象是否必要 TODO