史诗级详解面试中JVM的实战
- 1.1 什么是内存泄漏?什么是内存溢出?
- 1.2 你们线上环境的JVM都设置多大?
- 1.3 线上Java服务器内存飙升怎么回事?
- 1.4 线上Java项目CPU飙到100%怎么排查?
- 1.5 线上Java项目OOM了,怎么回事?
1.1 什么是内存泄漏?什么是内存溢出?
内存溢出:OutOfMemory
它是指程序在申请内存时,没有足够的内存空间供其使用,抛出OutOfMemory错误;
比如申请了一个8MB空间,但是当前内存可用空间只有5MB,那么就是内存溢出;
即:OutOfMemoryError,是指没有空闲内存,垃圾收集器回收后也不能提供更多的内存空间;
内存泄露:Memory Leak
它是指程序运行后,没有释放所占用的内存空间,一次内存泄漏可能不会有很大的影响,但长时间的内存泄漏,堆积到一定程度就会产生内存溢出;