1.标配参数

2.X参数

3.XX参数-Boolean类型

4.XX参数-KV类型

5.如何查看开启了哪些JVM参数

1.标配参数
通常,在咱们第一天接触JAVA的时候,咱们就接触过标配参数。咱们在装置完java环境后,咱们会输出以下参数来查看java是否装置胜利:
java -version
-help
-showversion

2.X参数(理解)
对于X参数,咱们平时也不会去碰他,咱们罕用的javac命令,就是把java文件编译成class文件,那么class文件怎么去执行呢?这里用到了三个X参数来阐明class文件怎么在虚拟机外面跑起来的。

-Xint:间接解释执行
解释:由解释器现场解释执行,不生汇编语言或者机器语言。
-Xcomp:先编译成本地代码再执行
解释:编写好的代码首先被编译程汇编语言或者是机器语言,而后执行。多用在高级语言上。
-XMixed:混合模式(既有编译执行也有解释执行)

3.XX参数-Boolean类型(重要)
这是咱们在生产中用的比拟多的参数类型,咱们先来看一看它的格局:

公式: -XX:+或者-某个属性值
+示意开启
-示意敞开

咱们先开看一个例子

开启打印GC信息:
-XX:+PrintGCDetails

咱们将它填入VM option里,运行起来,咱们就会看到垃圾收集信息:

咱们复制一条垃圾收集信息来剖析一下:

[GC (Allocation Failure)
[PSYoungGen: 269254K->776K(304640K)]
这条日志示意GC前young区和GC后young区的内存大小区别 ,GC前:269254 GC后:776
670669K->459534K(1000960K), 0.0303594 secs]
这条日志示意堆的总内存大小,GC前670669,GC后459534K
[Times: user=0.05 sys=0.03, real=0.03 secs]
这条示意执行工夫。

再来看一条Full GC
[Full GC (Ergonomics)
[PSYoungGen: 235302K->0K(304640K)]
同上,年老代收集状况
[ParOldGen: 688134K->344783K(696320K)] 923437K->344783K(1000960K),
老年代收集状况
[Metaspace: 3263K->3263K(1056768K)], 0.0394456 secs]
永恒代收集状况
[Times: user=0.13 sys=0.02, real=0.04 secs]
耗时

4.XX参数-KV类型(重要)

咱们来看一下 KV类型的参数

公式-XX:属性key=属性value
例子:
-XX:MetaspaceSize=128M

咱们将JVM的元空间设置为128M。

那可能问题就来了,咱们平时的开发中最最最罕用的-Xmx和-Xms又是什么参数?

这是因为 -Xmx和-Xms 简写了。

-Xms其实等同于 -XX:InitialHeapSize

-Xmx其实等同于 -XX:MaxHeapSize

5.如何查看开启了哪些JVM参数

咱们简略地介绍了一下JVM参数的格局,那么如何查看咱们服务中的JVM参数配置呢?

咱们先来介绍一个命令 jps -l

这个命令是显示目前所有java过程的命令,咱们试着应用一下:

咱们先开启命令行窗口

接下来,咱们输出 jps -l

就能够打印出所有JAVA过程了。

后面那一串数字是过程编号,前面那一串名字是过程。

接下来咱们查看一下,这个过程开启了什么参数

输出jinfo -flag 参数名 id 能够查看具体的参数配置内容:

输出jinfo -flags id 能够查看具体的参数配置内容:

明天咱们就介绍到这里,对于罕用的JVM参数,咱们将会在下节进行具体介绍。