JVM(1)- 参数

一、Java启动参数共分为三类:

  1. 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
  2. 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
  3. 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;

1.Boolean类型XX参数

公式:-XX:+ 或者-XX:- 某个属性值(+表示开启,-表示关闭)

1.1是否打印GC收集细节

-XX:+PrintGCDetails
-XX:-PrintGCDetails

1.2是否使用串行垃圾收集器

-XX:+UseSerialGC
-XX:-UserSerialGC

代码验证:


JVM(1)- 参数_第1张图片
没有配置任何参数

JVM(1)- 参数_第2张图片
验证结果是"-PrintGCDetails"
配置参数

JVM(1)- 参数_第3张图片
验证结果是"+PrintGCDetails "

jps -l 表示查看java运行的进程号
jinfo -flag PrintGCDetails 表示查看JVM是否配置PrintGCDetails参数

2.KV设值类型

公式:-XX: key(属性)= value(属性值)


查看MetaspaceSize默认值

XX:MetaspaceSize=21807104(大约22MB)


JVM(1)- 参数_第4张图片
设置MetaspaceSize=1024m

验证成功

3.jinfo查看当前运行程序配置

公式:jinfo -flag 配置项 进程号

jinfo -flags 进程号,查看JVM所有配置项(默认+人工配置)

注意点:这里使用mac在java8进行jinfo查询的时候有可能会有问题Can't attach symbolicator to the process。

4.如何解释-Xms和-Xmx参数属于XX参数

-Xms和-Xmx两个经典参数看起既不像Boolean类型XX参数,也不像KV设值类型XX参数。那为什么-Xms和-Xmx又属于XX参数?

-Xms = -XX:InitialHeapSize
-Xmx = -XX:MaxHeapSize

二、查看JVM默认参数

JVM(1)- 参数_第5张图片
java -XX:+PrintFlagsInitial(查看jvm未更改的默认参数)

java -XX:+PrintFlagsInitial >> test.txt 也可以输出到一个文件进行查询

你可能感兴趣的:(JVM(1)- 参数)