先研究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参数介绍

在这里插入图片描述

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

java heap space异常原因:

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

解决办法:

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐