一、java中jdk1.8概念图的网址及结构如下:
网址: https://docs.oracle.com/javase/8/docs/ 结构图:
1、创建一个空的学生类 2、编写一个内存溢出的测试类
3、配置参数详解
- -Dfile.encoding=UTF-8
- -Xms20m -Xmx20m 设置堆大小20m,将最小和最大值设置相等,避免扩展
- -XX:+HeapDumpOnOutOfMemoryError dump出当前的内存堆转储快照
- -XX:HeapDumpPath=E:\job 指定路径(转储文件还是挺大的)
- -XX:SurvivorRatio=8 存活比2:8
4、配置程序jvm参数,右键选择【Run As】----->【Run Configurations…】,在VM arguments中设置dump出当前的内存堆转储快照,并设置堆大小为20兆,超过20兆报内存溢出错误。 5、右键运行程序,会很快报堆内存溢出。
6、在该项目的路径下会生成hprof格式的快照文件。该格式文件用notepad++打开是乱码,需要借助Eclipse Memory内存分析工具打开。
1、下载步骤如下:
(1)lz已下载好win64位版本的百度云链接如下: https://pan.baidu.com/s/1gk0oYM1oQqj_xNPwHoATPw 提取码:0osr (2)、官网下载如下: 点击此链接进入Eclipse Memory官网页面 2、安装步骤如下:
1、点击【File】---->【Open Heap Dump…】。如下图: 2、选择步骤一中生成的.hprof格式的快照文件。点击【打开】
3、点击【Finish】
4、出现如下图即可:
5、内存出分析原因如下图: