堆溢出(被缓存的实例对象,大的 map、list 引用大的对象等等)、栈溢出(栈帧太多,也就是函数调用层级过多时出现的异常,检查是否有死递归的情况)、方法区溢出
方法区溢出:这一部分属于存放 class 和 meta 的信息,Class 在被 load 的时候被放入 PermGenSpace 区域(包括常量池、静态变量),它和存放 Instance 的 heap 区不同,GC 不会在主程序运行时期对 PermGenSpace 进行清理,所以如果 APP 会 load 很多 Class 的话,就很可能出现 PermGenSpace 错误。可以通过设置 JVM 启动参数来解决。 -XX:MaxPermSize=256m