jav常见的几种异常类

jav常见的几种异常类

 

OutofMemory

1、java堆异常

Java堆用于存储对象实例,只要不断地创建对象,并且保证这些对象不会被垃圾回收机制清理(GC Roots 到对象之间有可达路径),当这些对象的容量达到堆的最大容量限制之后,就会导致堆内存溢出。

解决办法:一般手段是通过内存映像分析工具对dump出来的堆转储快照进行分析,分清楚到底是内存泄漏的原因还是内存溢出的原因,如果是内存泄漏的话,可进一步通过工具查看这些泄漏对象与GC route之间的路径 来定位原因,还有就是如果是内存溢出的话,可通过调整堆内存的大小来解决。

 

2、栈异常

如果线程请求的栈的深度超过了虚拟机所允许的最大深度后,就会产生栈溢出异常,如果虚拟机在扩展栈的时候无法申请到足够大的内存空间,就会抛出out of memory error。

解决办法 检查一下程序有没有递归函数没有出口的这种情况,增大分配给每个线程的栈空间,但是在多线程情况下可建立的线程数量就会降低,更容易把剩下的栈内存耗尽。

posted @ 2021-12-29 13:41  11111ghm  阅读(221)  评论(0编辑  收藏  举报