Java出现内存溢出,可以通过jstat命令来看:

jstat -gcutil <pid> 1000

jstat看到FGC比较频繁,则基本可以判断是出现了内存溢出。

一般发生内存溢出的原因在于:
1、定义一个static集合
2、或者长时间执行的for循环内的集合。

向以上两种集合中写入信息而忘记回收,就可能造成GC不能回收这部分内存。