第22题怎么查看服务器默认的垃圾回收器是哪一个回答核心考点“默认”指未显式指定GC参数时JVM根据JDK版本、CPU核心数、内存大小自动选择的回收器。不同版本默认值不同。1. 不启动进程即可查大厂必会方法一java -XX:PrintFlagsFinal -version | grep Usejava-XX:PrintFlagsFinal-version|grep-EUse.*GC输出解读bool UseParallelGC true→ JDK 8 默认Parallelbool UseG1GC true→ JDK 9 默认G1关键:表示最终生效值表示未被修改但可能是默认方法二java -XX:PrintCommandLineFlags -versionjava-XX:PrintCommandLineFlags-version输出示例JDK 8-XX:InitialHeapSize... -XX:UseParallelGC -XX:UseParallelOldGC优点直接显示当前环境实际使用的GC。2. 运行中进程查生产环境常用方法一jinfo -flags PIDjinfo-flags12345|grep-EUse.*GC注意只显示非默认值。如果输出为空说明用的是当前版本的出厂默认GC。方法二jstat -gc PID反推jstat-gc123451s通过空间名称判断输出中出现的关键字对应GCPSYoungGen、ParOldGenParallelJDK 8默认G1 Young Generation、G1 Old GenG1JDK 9默认ParNew、CMSCMS已废弃S0CS1C但无PS前缀Serial3. 不同JDK版本的默认GC面试必背JDK版本默认垃圾回收器JDK 7及以前Parallel GC但Server/Client模式有别JDK 8Parallel GC-XX:UseParallelGCJDK 9 ~ JDK 14G1-XX:UseG1GCJDK 15仍是G1但ZGC逐步成熟需显式开启考点JDK 8默认不是G1JDK 9默认才是G1。很多人会答错。4. 快速判断脚本大厂面试手写级# 一行命令判断当前JDK默认GCjava-XX:PrintCommandLineFlags-version21|grep-oE\-XX:\Use[^ ]*GC|head-15. 总结对比表方法是否需要进程结果准确性适用场景PrintFlagsFinal | grep否最终生效值开发/测试环境PrintCommandLineFlags否直接显示快速确认jinfo -flags是运行中值生产环境jstat -gc是间接推断无法用jinfo时面试官想要的满分回答“查看默认GC分两种情况未启动时用java -XX:PrintCommandLineFlags -version直接看到启动参数中自动添加的GC标志。已运行进程用jinfo -flags PID查看是否显式设置过GC如果输出没有GC相关参数说明用的是该JDK版本的出厂默认值。记住JDK 8默认ParallelJDK 9默认G1。生产环境不要凭记忆必须用命令实际验证。”觉得对您有帮助麻烦点点关注啦您的关注是我创作的最大动力~
【大白话说Java面试题 第62题】【JVM篇】第22题:怎么查看服务器默认的垃圾回收器是哪一个?
第22题怎么查看服务器默认的垃圾回收器是哪一个回答核心考点“默认”指未显式指定GC参数时JVM根据JDK版本、CPU核心数、内存大小自动选择的回收器。不同版本默认值不同。1. 不启动进程即可查大厂必会方法一java -XX:PrintFlagsFinal -version | grep Usejava-XX:PrintFlagsFinal-version|grep-EUse.*GC输出解读bool UseParallelGC true→ JDK 8 默认Parallelbool UseG1GC true→ JDK 9 默认G1关键:表示最终生效值表示未被修改但可能是默认方法二java -XX:PrintCommandLineFlags -versionjava-XX:PrintCommandLineFlags-version输出示例JDK 8-XX:InitialHeapSize... -XX:UseParallelGC -XX:UseParallelOldGC优点直接显示当前环境实际使用的GC。2. 运行中进程查生产环境常用方法一jinfo -flags PIDjinfo-flags12345|grep-EUse.*GC注意只显示非默认值。如果输出为空说明用的是当前版本的出厂默认GC。方法二jstat -gc PID反推jstat-gc123451s通过空间名称判断输出中出现的关键字对应GCPSYoungGen、ParOldGenParallelJDK 8默认G1 Young Generation、G1 Old GenG1JDK 9默认ParNew、CMSCMS已废弃S0CS1C但无PS前缀Serial3. 不同JDK版本的默认GC面试必背JDK版本默认垃圾回收器JDK 7及以前Parallel GC但Server/Client模式有别JDK 8Parallel GC-XX:UseParallelGCJDK 9 ~ JDK 14G1-XX:UseG1GCJDK 15仍是G1但ZGC逐步成熟需显式开启考点JDK 8默认不是G1JDK 9默认才是G1。很多人会答错。4. 快速判断脚本大厂面试手写级# 一行命令判断当前JDK默认GCjava-XX:PrintCommandLineFlags-version21|grep-oE\-XX:\Use[^ ]*GC|head-15. 总结对比表方法是否需要进程结果准确性适用场景PrintFlagsFinal | grep否最终生效值开发/测试环境PrintCommandLineFlags否直接显示快速确认jinfo -flags是运行中值生产环境jstat -gc是间接推断无法用jinfo时面试官想要的满分回答“查看默认GC分两种情况未启动时用java -XX:PrintCommandLineFlags -version直接看到启动参数中自动添加的GC标志。已运行进程用jinfo -flags PID查看是否显式设置过GC如果输出没有GC相关参数说明用的是该JDK版本的出厂默认值。记住JDK 8默认ParallelJDK 9默认G1。生产环境不要凭记忆必须用命令实际验证。”觉得对您有帮助麻烦点点关注啦您的关注是我创作的最大动力~