public class TestCode { public void testHeap(){//堆溢出 List<byte[]> list = new ArrayList<>(); int i=0; while (true){ list.add(new byte[5*1024*1024]); System.out.println("count is: "+(++i)); } } int num = 1; public void testStack(){ //栈溢出 num++; this.testStack(); } public static void main(String[] agrs){ TestCode t = new TestCode(); t.testHeap(); t.testStack(); } }
堆栈溢出 代码
最新推荐文章于 2024-08-18 22:28:04 发布
该博客展示了Java中两种常见的内存溢出错误:堆溢出和栈溢出。在`testHeap()`方法中,通过不断向ArrayList添加大容量字节数组模拟了堆溢出,而在`testStack()`方法中,递归调用自身导致栈帧过多,演示了栈溢出。这两个示例帮助理解Java内存管理的关键概念。
摘要由CSDN通过智能技术生成