命令行:HotSpot启动时解析命令行选项并据此配置HotSpot VM.
其中一些配置供启动器使用,如指定选择哪些JIT编译器,垃圾回收期;
还有一些经启动器处理后传给完成启动的HotSpot VM,例如指定Java的堆内存。
命令行选项主要有3类:
- 标准选项(Standand Option):
标准选项是Java Virtaul Machine Specification 要求所有的Java虚拟机都必须实现的选项,发行版本间保持稳定,但也有可能移除。 - 非标准选项(Nonstandand Option):
非标准选项(以-X开头),不保证也不要求所有的JVM都必须实现他,他可能未经通知就在发行版本中被移除。 - 非稳定选项(Developer Option):
非稳定选项(以-XX开头),和非标准选项一样也可能不经通知就在发行版本间移除。主要用于特定需要而JVM运行进行的定制,且可能需要有系统配置参数的访问权限。
命令行选项每个配置都有类型和默认值:
- 布尔类型的内部变量,只需要添加或者去掉对应配置就可以控制这些变量;
- 布尔类型的非稳定选项,选项前+表示true,-表示启用默认值false. Eg:-XX:+AggOpts 表示设置某个布尔类型的AggOpts变量的值为true,-XX:-AggOpts表示启用默认值。