概念:内存泄露:内存泄露就是对象引用消失了,对象内存却没有被回收。
java是自动管理内存的,通常情况下程序运行到稳定状态,内存大小也达到一个基本稳定值,但是内存泄露导致GC不能回收泄露的垃圾,内存不断变大,最终超出了内存界限,进而程序抛内存控制的Exception(说法应该不对,java只有OutOfMemoryError,没有OutOfMemoryException)
其实内存泄漏的最终结果就是内存溢出,最常见的就是stackoverflow了。
FullGC:是老年代内存空间不足的时候,才会触发的,老年代一般是生命周期较长的对象或者大对象,频繁的 FullGC 可能会影响程序性能(因为内存回收需要消耗CPU等资源),但是并不会直接导致内存泄漏。
JVM奔溃的可能是内存溢出引起的,也可能是其他导致 JVM崩溃的操作,例如设置了错误的JVM参数等