https://www.bilibili.com/video/BV1Qv411V7qw?p=6
内存泄漏:
内存泄漏是指本应该被GC回收的无用对象没有被回收,导致的内存空间的浪费。当内存泄漏严重时会导致OOM
内存溢出:
就是通常遇到的 OutOfMemoryError 异常,通俗理解就是内存不够,通常在运行大型程序时候发生,当程序所需要的内存远远超出了 JVM 内存所承受代小,就会报出 OutOfMemoryError 异常。
JVM的参数类型
- 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
- 非标准参数(-X),默认JVM实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容;
- 非 Stablb参数(-XX),此类参数各个JVM实现会有所不同,将来可能会随时取消,需要慎重使用
- XX:+ 启动选项
-XX:- 不启用选项
-XX:选项名= 给选项设置一个数字类型值,可跟单位,例如 -XX:MaxPermSize=64m 方法区所能占用的最大内存
-XX:选项名= 给选项设置一个字符串值,例如-XX:HeapDumpPath=./dump.core
JVM 标准参数
- client 设置 jvm 使用 client 模式,使用于一般 PC
- server 使用 server 模式,启动速度虽然慢 但效率高 适用于服务器
- verbose:class 输出jvm载入类的相关信息,当jvm报告说找不到类或者类冲突时进行诊断。
- verbose:gc 输出每次GC的相关情况
- verbose:jni 输出 native 方法调用的相关情况,一般用于诊断jni调用错误信息
JVM 非标准参数