-
添加虚拟机参数
-XX:+HeapDumpOnOutOfMemoryError(内存溢出则会自动生成"溢出分析文件",如图1)
图1
-Xmx512m(为了快速模拟内存溢出,暂设堆空间为512m) -
编写发生内存溢出代码
public class MemoryOutputError {
public static void main(String[] args) {
ArrayList<Object> list = new ArrayList<>();
while (true) {
list.add(new Object());
}
}
}
- 使用MAT工具分析生成的内存溢出分析文件(如图2)
下载地址:https://eclipse.dev/mat/downloads.php
图2
- 点击溢出查看(如图3)
图3 - 溢出定位,com.lidantao.MemoryOutputError.main([Ljava/lang/String;)V (MemoryOutputError.java:15)【发生在MemoryOutputError的main函数的第15行】