(一)深入java虚拟机之内存溢出与分析
一、内存溢出程序
public class Test { public static void main(String[] args) { List<User> userList=new ArrayList<User>(); while(true) { userList.add(new User()); } } }
public class User implements Serializable { /** * */ private static final long serialVersionUID = 1L; private Integer id; private String userName; private String pwd; //省略getset方法 }
- 当程序运行起来后一段时间内存就会溢出。
二、查看内存溢出情况
2.1 安装内存分析工具
2.2 运行参数配置
Run as-->Run Configurations-->Arguments-->VM arguments:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError,配置20M当做内存溢出上限,方便测试,具体大小大家可以自己控制。-XX:+HeapDumpOnOutOfMemoryError 配置后,当存溢出就会生成文件。
2.3 运行程序
- 刷新工程,生成文件
- 双击打开
如上图可知,是main线程的ArrayList内存溢出