Java知识梳理——OOM出现的场景

OOM for Heap (java.lang.OutOfMemoryError: Java heap space):heap的最大值不满足需要,将设置heap的最大值调高即可。
OOM for StackOverflowError (Exception in thread "main" java.lang.StackOverflowError):如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。
OOM for GC (java.lang.OutOfMemoryError: GC overhead limit exceeded):此OOM是由于JVM在GC时,对象过多,导致内存溢出。
OOM for native thread created (java.lang.OutOfMemoryError: unable to create new native thread):这个异常问题本质原因是我们创建了太多的线程,而能创建的线程数是有限制的,导致了异常的发生。
OOM for allocate huge array (Exception in thread "main": java.lang.OutOfMemoryError: Requested array size exceeds VM limit):此类信息表明应用程序试图分配一个大于堆大小的数组。例如,如果应用程序new一个数组对象,大小为512M,但是最大堆大小为256M,因此OutOfMemoryError会抛出,因为数组的大小超过虚拟机的限制。
OOM for small swap (Exception in thread "main": java.lang.OutOfMemoryError: request bytes for . Out of swap space? )抛出这类错误,是由于从native堆中分配内存失败,并且堆内存可能接近耗尽。
OOM for exhausted native memory (java.lang.OutOfMemoryErr java.io.FileInputStream.readBytes(Native Method)):由于Native memory被耗尽导致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值