JAVA各种OOM代码样例及解决方法
周末了,觉得我还有很多作业没有写,针对目前大家对OOM的类型不太熟悉,那么我们来总结一下各种OOM出现的情况以及解决方法。 我们把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法。 1. 堆溢出-java.lang.OutOfMemoryError: Java heap space。 2. 栈溢出-java.lang.OutOfMemorryError。 3. 栈溢出-java.lang.StackOverFlowError。 4. 元信息溢出-java.lang.OutOfMemoryError: Metaspace。 5. 直接内存溢出-java.lang.OutOfMemoryError: Direct buffer memory。 6. GC超限-java.lang.OutOfMemoryError: GC overhead limit exceeded。 第一种,堆溢出异常,相信大家很常见。即堆内对象不能进行回收了,堆内存持续增大,这样达到了堆内存的最大值,数据满了,所以就出来了。我们直接放溢出的代码样例。我们需要设置好idea的VM Options: -Xmx100m,这样我们设置为最大堆内存,这样运行起来就很快就出来错误了。 package oom; import java.util.ArrayList; import