JVM中-、-X参数和-XX参数之间的区别是什么?

JVM中-、-X参数和-XX参数之间的区别是什么?,jvm,Jvm,JVM有很多参数。有些以-开头,例如-server,-client。有些以-X开头,例如-Xms,-Xmx。有些以-XX开头,例如-XX:PermSize,-XX:UseParallelGC 这是我的问题。既然这些参数没有重复,为什么要从这么多不同的前缀开始呢?为什么不用“-”呢。我猜这是有某种标准的。-XX参数是扩展设置,并非所有JVM impl都支持。是这样吗?java-help: -X Displays information about non-standard options

JVM有很多参数。有些以-开头,例如-server,-client。有些以-X开头,例如-Xms,-Xmx。有些以-XX开头,例如-XX:PermSize,-XX:UseParallelGC


这是我的问题。既然这些参数没有重复,为什么要从这么多不同的前缀开始呢?为什么不用“-”呢。我猜这是有某种标准的。-XX参数是扩展设置,并非所有JVM impl都支持。是这样吗?

java-help

-X     Displays information about non-standard options and exit

是的,这是支持的水平。在将来的版本中支持香草(“-”)选项,不支持X。此外,XX选项“不建议随意使用”

例如,请参阅IBM的JVM文档:

  • 以-X开头的选项是非标准的(不保证在所有VM实现上都受支持),在JDK的后续版本中可能会更改,恕不另行通知
  • 用-XX指定的选项不稳定,可能会更改,恕不另行通知

以下是命令行参数选项的三个主要类别:

  • 标准选项:以-开头的选项是所有JVM实现都会接受的标准选项,并且在不同版本之间是稳定的(尽管它们可能会被弃用)

  • 非标准选项:以-X开头的选项是非标准的(不保证在所有JVM实现上都受支持),在Java SDK的后续版本中可能会发生更改,恕不另行通知

  • 开发人员选项:以-XX开头的选项是开发人员选项,通常具有正确操作的特定系统要求,可能需要对系统配置参数进行特权访问;不建议随意使用。这些选项如有更改,恕不另行通知