上一节介绍了针对JVM的监控工具,包括JPS可以查看当前所有的java进程,jstack查看线程栈可以帮助你分析是否有死锁等情况,jmap可以导出java堆文件在MAT工具上进行分析等等.这些工具都非常有用,但要用好他们需要不断的进行实践分析.本文将介绍使用MAT工具进行java堆分析的案例. 内存溢出(OOM)的原因 我们常见的OOM(OutOfMemoryError)发生的原因不只是堆内存溢出,堆内存溢出只是OOM其中一种情况,OOM还可能发生在元空间.线程栈.直接内存. 下面演示在各个区发…