编写堆内存溢出代码
public class Test2 {
public static void main(String[] args) {
String str = "dededddddddddddddddddddddd";
while (true){
str+=str+"dedddddddddddddddddddddddddddddddddddddddddddddddddd";
}
}
}
在我们idea或者eclipse里配置我们JVM参数:
-xms8m -Xmx8m -XX:+PrintGCDetails
-XX:+PrintGCDetails 发生gc时打印日志
-Xmx8M 表示堆最大为8M
-xms8M 表示初始堆大小为8M
表示我们当前JVM中堆内存最大只能使用8m,测试出堆内存溢出异常 查看GC日志,
在我们测试代码运行后 控制台出现以下日志
[GC (Allocation Failure) [PSYoungGen: 1536K->504K(2048K)] 1536K->816K(7680K), 0.0009005 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
1536K->504K(2048K)] 1536K->816K(7680K)
1536K:表示gc前,新生区已使用的空间
504K:表示gc后,新生区已使用的空间
2048K:新生区内存总大小
1536K:表示gc前,堆已使用空间的大小。
816K:表示gc后,堆所使用空间大小。
7680K:等于新生区加老年区的和
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。