金三银四跳槽季将至,估计小伙伴们都在备战,来问问题的也多了起来,尤其是问OOM与JVM调优相关的问题。只能感叹,大家都太不容易了。明明只是小白、明明只想找份工作、明明没有机会接触到OOM与调优……却被现实逼着要去搞懂JVM、OOM、调优……本篇文章是结合大厂与小厂的同学们问的问题,结合我的工作经历整理总结而来。看懂、理解、背下来,当面试官再问你OOM与调优,一定被你征服。
看完这篇文章,大家能获得的知识:
1、什么是OOM
2、为什么会发生OOM
3、哪些区域会发生OOM
4、JVM进程挂了,会有哪些可能性
5、生产环境的JVM无响应了,如何快速定位问题
6、子牙老师给你的一些成熟的调优建议
01
什么是OOM
OOM是Out Of Memory的缩写。即内存溢出。
02
为什么会发生OOM
如果面试官问这个问题,我知道每个人都能说一大堆,但是我希望大家就回答下面三句话,言简意赅:



可能有些小伙伴又要说了:搞挂JVM,我有无数的办法,可怎么让它一直活着或活得更久更好呢?





如果你发现发生OOM的位置是类加载器那些方法,那一定是元空间OOM。
怎么样,学会了吗?
如果发生OOM让JVM自动dump内存的设置你没开,那你可以跑路了,老板正在赶来的路上,手上拿着大刀!

