一、Java启动参数共分为三类:
- 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
- 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
- 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
1.Boolean类型XX参数
公式:-XX:+ 或者-XX:- 某个属性值(+表示开启,-表示关闭)
1.1是否打印GC收集细节
-XX:+PrintGCDetails
-XX:-PrintGCDetails
1.2是否使用串行垃圾收集器
-XX:+UseSerialGC
-XX:-UserSerialGC
代码验证:
没有配置任何参数
验证结果是"-PrintGCDetails" 配置参数
验证结果是"+PrintGCDetails "
jps -l
表示查看java运行的进程号
jinfo -flag PrintGCDetails
表示查看JVM是否配置PrintGCDetails参数
2.KV设值类型
公式:-XX: key(属性)= value(属性值)
查看MetaspaceSize默认值
XX:MetaspaceSize=21807104(大约22MB)
设置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默认参数
java -XX:+PrintFlagsInitial(查看jvm未更改的默认参数)java -XX:+PrintFlagsInitial >> test.txt 也可以输出到一个文件进行查询
网友评论