StackOverflowError:栈深度超过虚拟机分配给线程的栈大小,方法调用层次太深,大概调用9745层左右,抛出异常,
解决办法,优化代码
异常案例:
public class test {
public static void main(String[] args) {
test.testStackOverflowError(test.c);
}
public static int c = 0;
public static void testStackOverflowError(int cc){
System.out.println(c++);
testStackOverflowError(c);
}
}
OutOfMemoryError:虚拟机分配给线程的内存大小中无法再分配新的内存,
解决办法:
服务器配置JVM内存大小:
Tomcat 的配置修改%TOMCAT_HOME%/bin/catalina.bat or catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
Cmd代码 set JAVA_OPTS=-Xms800m -Xmx800m -XX:PermSize=128M -XX:MaxNewSize=256m -