原文:https://blog.youkuaiyun.com/qq_33450379/article/details/53731318
OOM异常
java.lang.OutOfMemoryError
堆溢出,也就说明了当前的实例对象过多
当报错信息java.lang.OutOfMemoryError后面带有java heap space时,说明是java堆溢出。
2.栈溢出
栈溢出需要建立两个概念,一个就是整个java stack区域的大小,一个就是单个线程中stack的大小。
整个stack区的大小是由jvm的内存容量、heap容量 、方法区容量确定的,是一个固定的值。
单个线程中 stack的大小也是固定的,可以通过 -Xss 配置
3.方法区溢出
方法区是用于存放类的定义Class文件和常量池等,由此可见,当类或者常量池过多时,会造成方法区溢出
当报错信息java.lang.OutOfMemoryError后面带有PremGen space时,说明是方法区溢出。