赞
踩
我先演示一下jvm内存溢出错误。
- package com.sk.jvm;
-
- import java.util.ArrayList;
- import java.util.List;
-
- public class Test003 {
- /**
- * 运行这段代码必须堆内存10m以上
- * 因为for循环循环了10次,每次生成了1m堆内存大小
- *
- * @param args
- */
- public static void main(String[] args) {
- System.out.println("堆的最大内存"+Runtime.getRuntime().maxMemory()/1024.0/1024+"m");
- System.out.println("堆的可用内存"+Runtime.getRuntime().freeMemory()/1024.0/1024+"m");
- System.out.println("堆的已经使用内存"+Runtime.getRuntime().totalMemory()/1024.0/1024+"m");
- // -Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError
- List<Object> listObject = new ArrayList<>();
- for (int i = 0; i < 10; i++) {
- System.out.println("i:" + i);
- Byte[] bytes = new Byte[1 * 1024 * 1024];
- listObject.add(bytes);
- }
- }
- }

运行这段代码必须堆内存10m以上,new 出来的对象存储在堆里面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。