常见受检和非受检异常,StackOverflowException和OutOfMemoryError常用解决方法

一、运行时异常(非受检异常):RuntimeException

NullPointerException,ArrayIndexOutBoundException,ClassCastException,IndexOutOfBoundsException,ArrayStoreException,BufferOverflowException

二、编译时异常(受检异常):除RuntimeException之外的Exception

ClassNotFoundException,IOException,SQLException,FileNotFoundException,InterruptedException

 以下问题解决方式:

1.StackOverflowException出现的原因,主要是调用层次太深导致栈溢出或死循环

2.OutOfMemoryError:内存不足错误

  解决方式:

  1. 增加java虚拟机中的XX:PermSize和XX:MaxPermSize参数的大小,其中XX:PermSize是初始永久保存区域大小,XX:MaxPermSize是最大永久保存区域大小。如针对tomcat6.0,在catalina.sh 或catalina.bat文件中一系列环境变量名说明结束处(大约在70行左右) 增加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"

  2. 检查程序,看是否有死循环或不必要地重复创建大量对象。

  3. 增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。如:set JAVA_OPTS= -Xms256m -Xmx1024m

原文地址:https://www.cnblogs.com/ivy-xu/p/12510312.html