20m,程序不停的创建对象,而对象又是在堆上分配内存,一直不停的向List中添加对象,没有垃圾回收,导致堆内存溢出(OutOfMemoryError)....工具分析堆
1.下载Mat分析软件:https://www.eclipse.org/mat/downloads.php
2.VM参数加上: -XX:+HeapDumpOnOutOfMemoryError开启堆内存溢出导出堆内存到文件...List res=new ArrayList(); res是局部变量,在栈上分配内存,res中存放的是UserTest实例对象的堆内存地址(引用),JDK1.8中打开指针压缩(-...当前案例未打开指针压缩:
14053个引用地址占用内存大小: `14053*8=112424`,`Shallow Heap`占用`112448`字节,还有24字节明显就是res容器本身占用的内存大小....数组浅堆占用内存计算:
16 bytes of overhead 对象的头
4 bytes length 存储容器长度
4 bytes padding 字节对其
16 bytes of overhead