导语: 近期在学习周志明老师的<<深入理解Java虚拟机: JVM高级特性与最佳实践(第3版)>>, 在IDEA中测试老师的示例代码时, 发现程序的输出和老师的输出不一样, 想到可能是我的JVM启动参数与老师的不一样, 有没有什么办法来查看JVM启动参数呢?

一. 背景

1. Java版本
# 使用 java -verison 命令查看
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
2. Linux内核版本
# 使用 uname -a 命令查看
Linux ubuntu 5.4.0-91-generic #102~18.04.1-Ubuntu SMP Thu Nov 11 14:46:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

# 使用 lsb_release -a 命令查看
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic

二. 输出JVM启动参数

JVM启动时, 添加以下参数, 即可在CMD中看到JVM启动参数:

-XX:+PrintCommandLineFlags
1. 不设置参数, 运行示例

程序一闪而过, 什么JVM参数都看不到, 示例:
在这里插入图片描述

2. IDEA如何设置JVM启动参数

添加-XX:+PrintCommandLineFlags参数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 添加参数后输出示例

在这里插入图片描述

4. 小结

通过参数-XX:+UseParallelGC参数得出, Java1.8版本的HotSpot虚拟机, 默认使用Parallel Scavenge + Serial Old(PS MarkSweep)作为垃圾收集器.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐