一呀枢、Java啟動(dòng)參數(shù)共分為三類:
- 標(biāo)準(zhǔn)參數(shù)(-)缕减,所有的JVM實(shí)現(xiàn)都必須實(shí)現(xiàn)這些參數(shù)的功能,而且向后兼容捞奕;
- 非標(biāo)準(zhǔn)參數(shù)(-X)牺堰,默認(rèn)jvm實(shí)現(xiàn)這些參數(shù)的功能,但是并不保證所有jvm實(shí)現(xiàn)都滿足颅围,且不保證向后兼容伟葫;
- 非Stable參數(shù)(-XX),此類參數(shù)各個(gè)jvm實(shí)現(xiàn)會(huì)有所不同院促,將來可能會(huì)隨時(shí)取消筏养,需要慎重使用斧抱;
1.Boolean類型XX參數(shù)
公式:-XX:+ 或者-XX:- 某個(gè)屬性值(+表示開啟,-表示關(guān)閉)
1.1是否打印GC收集細(xì)節(jié)
-XX:+PrintGCDetails
-XX:-PrintGCDetails
1.2是否使用串行垃圾收集器
-XX:+UseSerialGC
-XX:-UserSerialGC
代碼驗(yàn)證:
jps -l
表示查看java運(yùn)行的進(jìn)程號(hào)
jinfo -flag PrintGCDetails
表示查看JVM是否配置PrintGCDetails參數(shù)
2.KV設(shè)值類型
公式:-XX: key(屬性)= value(屬性值)
XX:MetaspaceSize=21807104(大約22MB)
3.jinfo查看當(dāng)前運(yùn)行程序配置
公式:jinfo -flag 配置項(xiàng) 進(jìn)程號(hào)
注意點(diǎn):這里使用mac在java8進(jìn)行jinfo查詢的時(shí)候有可能會(huì)有問題Can't attach symbolicator to the process夺姑。
4.如何解釋-Xms和-Xmx參數(shù)屬于XX參數(shù)
-Xms和-Xmx兩個(gè)經(jīng)典參數(shù)看起既不像Boolean類型XX參數(shù),也不像KV設(shè)值類型XX參數(shù)掌猛。那為什么-Xms和-Xmx又屬于XX參數(shù)盏浙?
-Xms = -XX:InitialHeapSize
-Xmx = -XX:MaxHeapSize
二、查看JVM默認(rèn)參數(shù)
java -XX:+PrintFlagsInitial >> test.txt 也可以輸出到一個(gè)文件進(jìn)行查詢