
Heap OOM堆内存溢出指 Java 应用因堆内存不足抛出 java.lang.OutOfMemoryError: Java heap space jvisualvm.exe 是 JDK 自带的图形化工具位于 $JAVA_HOME/bin/用于加载并分析该文件定位内存泄漏。 简单理解实操每个人都是不一样或许我这样的方式更加通俗易懂package jvm; import java.util.ArrayList; import java.util.List; /** * java -Xms20m -Xmx20m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./heapdump.hprof HeapOOMDemo 有时候字符集乱码不行的话吧注释删除下哈 * * author ZengWenFeng * date 2019.03.01 * mobile 13805029595 * email 117791303qq.com */ public class HeapOOMDemo { // 每次创建一个1MB的byte数组强引用保存到List中无法被GC回收 public static void main(String[] args) { Listbyte[] list new ArrayListbyte[](); int count 0; while (true) { list.add(new byte[1024 * 1024]); // 1MB/个 System.out.println(已创建对象数 (count) MB); } } }heapdump.hprofMicrosoft Windows [版本 10.0.19045.6216] (c) Microsoft Corporation。保留所有权利。 C:\Users\Administratorcd C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktopjavac HeapOOMDemo.java HeapOOMDemo.java:18: 错误: 编码GBK的不可映射字符 // 姣忔鍒涘缓涓?涓?1MB鐨刡yte鏁扮粍锛屽己寮曠敤淇濆瓨鍒癓ist涓紝鏃犳硶琚獹C鍥炴敹 ^ HeapOOMDemo.java:18: 错误: 编码GBK的不可映射字符 // 姣忔鍒涘缓涓?涓?1MB鐨刡yte鏁扮粍锛屽己寮曠敤淇濆瓨鍒癓ist涓紝鏃犳硶琚獹C鍥炴敹 ^ HeapOOMDemo.java:25: 错误: 编码GBK的不可映射字符 list.add(new byte[1024 * 1024]); // 1MB/涓? ^ HeapOOMDemo.java:26: 错误: 编码GBK的不可映射字符 System.out.println(宸插垱寤哄璞℃暟锛? (count) MB); ^ 4 个错误 C:\Users\Administrator\Desktopjavac -encoding UTF-8 HeapOOMDemo.java C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop C:\Users\Administrator\Desktopjava -Xms20m -Xmx20m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./heapdump.hprof HeapOOMDemo Created 1 MB objects Created 2 MB objects Created 3 MB objects Created 4 MB objects Created 5 MB objects Created 6 MB objects Created 7 MB objects Created 8 MB objects Created 9 MB objects Created 10 MB objects Created 11 MB objects Created 12 MB objects Created 13 MB objects Created 14 MB objects Created 15 MB objects Created 16 MB objects Created 17 MB objects java.lang.OutOfMemoryError: Java heap space Dumping heap to ./heapdump.hprof ... Heap dump file created [19205389 bytes in 0.009 secs] Exception in thread main java.lang.OutOfMemoryError: Java heap space at HeapOOMDemo.main(HeapOOMDemo.java:9) C:\Users\Administrator\DesktopJVM 结构图 2019