JVM标配、X和XX参数

一、JVM的参数类型

(注意本文通过IDEA的Terminal窗口进行演示说明)

1:标配参数

  java -version
  java -help
  java -showversion

2:X参数

-Xint 解释执行
在这里插入图片描述
-Xcomp 第一次使用就编译成本地代码(先编译)
在这里插入图片描述
-Xmixed 混合模式(先编译后执行,java默认就是混合模式)
在这里插入图片描述

3:XX参数

3.1 Boolean类型XX参数
公式:-XX:+ 或者-XX:- 某个属性值(+表示开启,-表示关闭)
案例:
1)是否打印GC收集细节
-XX:+PrintGCDetails
-XX:-PrintGCDetails
2)是否使用串行垃圾收集器
-XX:+UseSerialGC
-XX:-UserSerialGC
代码验证:
首先没有配置任何JVM -XX:+某个属性值 在这里插入图片描述
启动main方法,执行JVMTest,在Terminal使用JDK工具查看是否配置JVM参数

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

-XX:-PrintGCDetails 中减号表示没有配置PrintGCDetails参数
在这里插入图片描述
-XX:+PrintGCDetails 中加号表示配置了PrintGCDetails参数
在这里插入图片描述
执行结果
在这里插入图片描述
3.2 KV设值类型
公式:-XX: key(属性)= value(属性值)
案例:
查看-XX:MetaspaceSize=默认值大小

-XX:MetaspaceSize=21807104(大约22MB)

添加-XX:MetaspaceSize=1024m参数
在这里插入图片描述
jinfo查看当前运行程序配置
公式:jinfo -flag 配置项 进程号
案例:
查看JVM所有配置项(默认+人工配置)

  jinfo -flags 进程号
  Non-default VM flags表示JVM默认参数
  Command line表示人工配置参数

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

4.1 JVM默认值

第一种查看JVM默认值方式

jinfo -flag 参数项 进程号
jinfo -flags 进程号

第二种查看JVM默认值方式
公式:java -XX:+PrintFlagsInitial(查看jvm未更改的默认参数)
在这里插入图片描述
参考文章
https://blog.csdn.net/longgeqiaojie304/article/details/93851827

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值