两份简历,一份技能栏写「Java」,一份写「Java 17」。面试官看到第二份会多想一步:这个人用过 17 里的什么。
版本号是一个信号。它传递的信息比多数人以为的多,也比多数人以为的更容易反噬。
版本号意味着三件事
一、你知道这个版本和上一个大版本的差别在哪。写 Java 17,默认你清楚 8 到 17 之间发生了什么:模块系统、var、record、sealed、文本块、switch 表达式、ZGC 转正、javax 到 jakarta 的命名空间变化。
二、你在真实项目里用过这个版本,不是本机装过。
三、你接受关于这个版本的追问。写 Spring Boot 3,对方会问从 2 迁 3 的过程;写 Vue 3,会问 Composition API 和 Options API 的取舍;写 MySQL 8,会问窗口函数或者降序索引有没有用过;写 Go 1.21 以上,会问泛型在你们代码里用在了哪。
三件事都成立,版本号是加分项,因为它把你和「只写 Java」的人区分开了。有一件不成立,版本号就是一个你自己埋的坑。
什么时候该带
主版本差异大,而且你真的在用。Java 8 和 17、Spring Boot 2 和 3、Vue 2 和 3、React 的 class 组件时代和 hooks 时代、Python 3.8 和 3.12 的类型系统。这些差异大到会影响写代码的方式,带版本号能让对方准确判断你的技术形态。
JD 里明确写了版本。对方写「Java 11 及以上」,你写「Java 8」,筛选阶段就会被降权;你写「Java」不写版本,对方要猜。写清楚,猜测的成本就没了。
你做过版本升级。这是版本号最值钱的写法,因为升级过程里的坑只有做过的人知道,它天然是一段能撑住追问的经历。
什么时候别带
工具类的版本没人关心。Git 2.x、Maven 3.8、Node 18 作为构建环境,写了只会显得在凑字数。
你自己不确定项目用的是哪个版本。这种情况写了必然出问题,面试一问「17 的什么特性你们用了」,答不上来比不写更糟。
版本落后于主流,而且你没有迁移经历。写 Java 8 不丢人,现在还有大量生产系统在 8 上跑,但它会引出一个问题:「有没有接触过更新的版本」。如果答案是没有,写「Java」比写「Java 8」更稳;如果个人项目用过新版本,用分层写法。
分层写法
生产环境的版本和个人使用的版本可以分开标:
Java 8(生产主力)/ 17(个人项目与内部工具)这一行的信息量比单写任何一个都大:说明公司环境是什么、你自己往前走了没有、追问可以落在哪一层。
改前改后
技术栈:Java、Spring Boot、MySQL、Redis、Kafka技术栈:Java 17(生产主力,2024 年从 8 升级)/ Spring Boot 3.2 / MySQL 8.0 / Redis 7 / Kafka 3.x配合项目经历里的一条:
- 主导支付服务 JDK 8 → 17 升级:处理 javax → jakarta 命名空间迁移(含 3 个第三方库替换)、 反射访问限制(--add-opens 逐项收敛后清零)、Lombok 与 MapStruct 版本兼容; 升级后 GC 由 CMS 切换为 ZGC,P99 停顿从 180ms 降至 15ms 以内改后的技能栏每个版本号都有出处,项目经历那一条把「为什么是 17」的追问提前答完了。面试官读到这里,问题会变成「add-opens 收敛是怎么做的」「切 ZGC 之后内存占用有没有变化」,这些正是你最熟的部分。
精确到哪一位
主版本号够用。Java 17、MySQL 8、Redis 7、React 18。次版本号只在它有实际含义时才写,比如 Spring Boot 2.7 和 3.0 之间是一条明确的分界线,Go 1.18 引入泛型也是。
写到修订号(Java 17.0.9)没有意义,除非你在讲一个和特定修订版相关的 bug。
前端的特殊情况
前端框架迭代快,版本号的信号更强。写 React 18 和写 React 而不带版本,对方对你的预期差很多:前者默认你知道并发渲染、自动批处理、Suspense 的边界。写 Vue 3 默认你用过 Composition API 和 script setup,如果项目其实还在 Options API 写法上,面试会有落差。
构建工具同理。Vite 和 Webpack 是两代东西,写清楚用的是哪个、有没有做过迁移,比写「熟悉前端工程化」具体得多。
写完自查
技能栏里每个版本号,问自己两句:这个版本我在什么项目里用的;它和上一个大版本的差别我能说出三条吗。
答不出来的版本号删掉,只留语言或框架名。留下来的每一个,都应该在项目经历里找得到对应。改完可以整体扫一遍:棱镜简历(prismresume.cn/check)免费体检,不用注册,粘贴文本或上传 PDF,几十秒列出表述缺失、格式不一致这类问题。版本号有的带小数点有的不带、有的加 v 有的不加,这类混杂自己先统一掉。
最后
版本号不是技术栏的装饰,它是你主动给出的追问范围。给对了,面试落在你的主场;给错了,第一个问题就在你的盲区。