OOM(OutOfMemory)是每个Javaer应该明白的东西,以前我遇到的时候就search it并调整JVM启动参数,但是具体怎么回事嘛?知道学习了并发和JVM才真正明白。
永久区内存溢出(Caused by: java.lang.OutOfMemoryError: PermGen space)
我们先来认识OOM发生的时机,写一段如下代码,不断动态地创建PermTestClass类(不是对象)。
运行之,讲道理的话一会就会OOM。不过有个前提,PermSize应该设置的比较小,才容易观察到。否则,甚至是不会OOM,如果GC(垃圾回收)够快的话。
运行结果:
运行开始时,使用jps来查看运行的java进程,然后使用jstat查看gc情况。
##