一、内存溢出
程序在申请内存时,没有足够的内存空间,很多时候内存溢出都是因为内存泄漏造成的
二、内存泄漏
该释放的对象没有释放,对象无法被回收,常见于使用容器保存元素的情况,这一定是代码的问题
三、栈溢出
常见于递归调用造成的死循环
四、堆溢出
对象不断被创建,堆内存不足存放太多对象
五、方法区溢出
在经常动态生产大量Class的应用中,CGLIb字节码增强,动态语言,大量JSP(JSP第一次运行需要编译成Java类),基于OSGi的应用(同一个类,被不同的加载器加载也会设为不同的类)
六、直接内存
JVM分配的本地直接内存大小大于JVM的限制(可以通过-XX:MaxDirectMemorySize来设置(不设置的话默认与堆内存最大值一样,也会出现OOM异常)
jvm出现各个区域内存不足的问题分析
最新推荐文章于 2023-09-15 15:54:57 发布