- 0
- 0
- 约3.5千字
- 约 5页
- 2026-09-01 发布于河北
- 举报
吃透JVM调优高频面试题|从原理到线上实战(大厂常问)
很多Java开发者面试时,JVM调优总是重灾区:背了一堆参数,面试一问线上实战、故障排查、GC选型就卡壳。其实大厂面试从来不考死记硬背的参数,核心看是否懂原理、会排查、有落地经验。
整理一套近期面试高频的JVM调优真题,全部结合线上生产场景作答,无空话套话,适合面试突击、复盘巩固。
一、基础核心必问(打底题)
1、为什么生产环境-Xms和-Xmx要设置成一样?
这是面试最基础也最容易答偏的题。很多人只说“避免内存扩容”,完整落地答案其实是:
JVM堆内存动态扩容和缩容会触发FullGC,且扩容过程需要操作系统分配内存、重新整理内存空间,会带来明显的服务卡顿。生产环境追求性能稳定,不需要JVM动态调节堆大小,直接将初始堆和最大堆设为等值,固定堆内存,规避动态扩容带来的不必要GC和性能抖动。
常规生产配置:-Xms4g-Xmx4g,服务器内存充足的前提下,不建议堆设置过大。
2、新生代和老年代比例怎么调?默认值是多少?依据是什么?
JDK8默认NewRatio=2,代表老年代:新生代=2:1,新生代占整个堆的1/3。
调优核心不看默认值,看业务对象生命周期:
接口、微服务业务:大多对象朝生夕死,请求结束即可回收,优先调大新生代,减少短期对象进入老年代,降低FullGC概率,可设置-XX:NewRatio=1
缓存、长连
原创力文档

文档评论(0)