java.lang.OutOfMemoryError: Java heap space

先研究java为什么会报java.lang.OutOfMemoryError: Java heap space错误呢?是由谁抛出的呢?

Java.lang.OutOfMemoryError:java heap space :说明java虚拟机内存不够。

示例:

  public static void main(String[] args) {

        String str = "HelloWorld";
        while (true) {
            str += str + new Random().nextInt(88888888);
        }

    }

修改jvm的启动参数:-Xms8m -Xmx8m -XX:+PrintGCDetails jvm参数介绍

java.lang.OutOfMemoryError: Java heap space_第1张图片

启动完,看下如下日志:
java.lang.OutOfMemoryError: Java heap space_第2张图片
当创建对象时如果伊甸园空间不足会触发Minor GC,如果老年代的内存空间不足会触发Full GC,如果两个内存空间都不足,老年代就会抛出Java.lang.OutOfMemoryError:java heap space

java heap space异常原因:

  1. java虚拟机的堆内存设置不够,可以通过-Xms、-Xmx来调整
  2. 代码中创建了大量的对象,并且长时间不能被GC回收

解决办法:

  1. 增加jvm的堆内存
  2. 优化代码,避免对象无法回收

你可能感兴趣的:(GC,JVM,java)