jvm oom异常调试

日期:2025.09.04

首先新建java文件:

import java.util.ArrayList;
import java.util.List;

public class HeapOOM {

	static class OOMObject{}

	public static void main(String[] args){
		List<OOMObject> list = new ArrayList<OOMObject>();
		System.out.println("123");
		while (true){
			list.add(new OOMObject());
		}
	}
}

注意:首行不要加 package 命令,否则运行时会提示找不到主方法。

编译和执行:

image

代码里有个死循环,为避免占用内存过大,执行是指定参数,并输出堆栈日志文件:

java -Xms5m -Xmx5m -XX:+HeapDumpOnOutOfMemoryError HeapOOM

image

使用java分析工具查看日志:

C:\Program Files\Java\jdk1.8.0_202\bin\jvisualvm.exe

装入java_pid13492.hprof文件后,可以在提示的线程方法里查看异常详情

image
image
image

posted @ 2025-09-04 15:50  Andy_lu020  阅读(4)  评论(0)    收藏  举报