关于JVM运行时数据区中各内存的Out Of Memory代码演示
1. 测试堆内存溢出
package OOM;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: Cool_Wu
* @Date: 2020-10-20 20:27
*/
/**
* 测试堆内存溢出:
* 1.调整堆内存参数 VM options:-Xms20M -Xmx20M
* 2.使用死循环不断地创建对象,通过List集合保持对象的引用,
* 保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象
* 运行结果:java.lang.OutOfMemoryError: Java heap space
*/
public class TestHeapOOM {
static class OOMObject{}
public static void main(String[] args) {
List<OOMObject> list = new ArrayList<>();
while (true){
list.add(new OOMObject());
}
}
}
2.测试栈内存溢出
package OOM;
/**