Java见几种内存溢及解决【情况】:
java.lang.OutOfMemoryError:Javaheapspace:种java堆内存够原真够(递归层数太等)另原程序死循环;
java堆内存够通调整JVM面配置解决:
-Xms3062m
-Xmx3062m
【情况二】
java.lang.OutOfMemoryError:GCoverheadlimitexceeded
【解释】:JDK6新增错误类型GC释放空间占用量间抛;般堆太导致异原没足够内存
【解决案】:
1、查看系统否使用内存代码或死循环;
2、通添加JVM配置限制使用内存:
-XX:-UseGCOverheadLimit
【情况三】:
java.lang.OutOfMemoryError:PermGenspace:种P区内存够通调整JVM配置:
-XX:MaxPermSize=128m
-XXermSize=128m
【注】:
JVMPerm区主要用于存放ClassMeta信息,ClassLoader放PermGenspace区域代GC主程序运行期间区进行清理默认64M程序需要加载象比较超64M报部内存溢需要加内存配般128m足够
【情况四】:
java.lang.OutOfMemoryError:Directbuffermemory
调整-XX:MaxDirectMemorySize=参数添加JVM配置:
-XX:MaxDirectMemorySize=128m
【情况五】:
java.lang.OutOfMemoryError:unabletocreatenewnativethread
【原】:Stack空间足创建额外线程要创建线程要Stack空间确实
【解决】:由于JVM没提供参数设置总stack空间设置单线程栈;系统用户空间共3G除Text/Data/BSS/MemoryMapping几段外HeapStack空间总量限消彼遇错误通两途径解决:1.通-Xss启参数减少单线程栈便能更线程(能太太现StackOverflowError);2.通-Xms-Xmx两参数减少Heap内存让给Stack(前提保证Heap空间够用)