mobile wallpaper 1
mobile wallpaper 2
mobile wallpaper 3
mobile wallpaper 4
10642 字
29 分钟
实习经历背诵底稿(云玑版):真实代码与面试口径对照及高频题库
2026-10-03

实习经历背诵底稿(云玑版)#

2026-10-02 从《主链路总整合》第八部分拆分而来,原章节号 8.9-8.13 保留不变,便于旧笔记与记忆索引。 文内引用的 8.8(踩坑故事)、9.3(禁用表述)等指《主链路总整合》中的章节;8.9-8.13 之间互引仍在本文件内。

8.9 实习三问话术(云玑实习专用,2026-09-29 重写)#

实习是面试的”固定题库”,中小公司面试官基本只问这三个问题。每题控制在 1 分钟内,答得”平”,高级话题全部留给优惠券项目。本节已按云玑 + 高校教学信息反馈平台口径重写,与 简历.md 一致。

第一问:实习做了什么?(100% 会问)#

公司是做高校信息化产品的,我大四上学期在 BOSS 上找的这家洛阳本地实习,做他们自研的高校教学信息反馈平台——覆盖全校 2 万多师生,反馈提交、学院分派、整改落实的线上闭环。技术栈是 Spring Boot + MyBatis,权限底座用了若依,我主要做反馈、信息员管理、数据统计这些业务模块的接口开发,前后 30 多个接口;也做过按角色和学院的数据隔离,还有几个性能优化——导出 OOM、慢 SQL、导出限流,代码过导师 Review 后上线。

答完主动收尾(把话筒递给主战场):“实习期间主要还是业务开发和一些单点优化,更深的并发挑战是在我自己做的优惠券项目里……”

第二问:为什么离职 / 没转正?(几乎必问)#

今年 6 月毕业,公司那会儿没有校招转正的 headcount,就正常结束了。产品也比较成熟,新需求不多,我想趁应届身份去南方看看机会,就来了深圳。

(三个理由背死:毕业时间到 + 公司无 headcount + 想南下发展。最后一句顺便回答”你为什么人在深圳”。)

第三问:实习遇到的最大困难?#

学期末教务处要全校的反馈明细导出,几万行数据,当时导出直接内存溢出了。排查发现是 POI 把整个 workbook 全量构建在堆里,改成 EasyExcel 流式写入加分批查询解决的。另一个是反馈列表按时间和状态筛选要 3 秒多,EXPLAIN 发现全表扫描,补了个联合索引降到 100 毫秒以内。

防守要点#

  • 答得太好 = 自曝:实习语境答 CRUD + 单点优化水平,别谈分布式锁、分库分表,全部留给优惠券项目。被问”你们 QPS 多少”答”学校场景,平时不高,学期末有峰值”。
  • 反馈平台业务词汇(业务骨架,花 1 小时过一遍):反馈工单(学生提交的问题/建议)、分派(按学院分给信息员)、整改落实、办结、超期催办、信息员(各学院对接人)、学期维度统计。
  • 背景细节固定:怎么进去的(BOSS 投的,组长技术面 + HR 面)、团队多大(见 8.12 表)、月薪 2500(被问再说)、一周去 4-5 天(大四课少)。
  • 时间平移(本套口径最大雷,自检三遍):你真实写这套代码是大三学年(2024.09 前后),面试口径是 2025.09 入职之后。所有”什么时候发生的”先在心里 +1 年再开口:OOM = 入职后第一个学期末(2025 年 12 月前后);慢 SQL / 限流 = 2026 年春季学期初。“大三”两个字永远不许出口。
  • 毕设被问:毕设选题结合了实习方向(管理系统类课题),实验室老师放养,5 月返校答辩,实习基本没受影响。
  • 时间线叙事(回答”讲讲你的学习路径”):在校实验室带项目 → 大四上在 BOSS 找到云玑实习,做反馈平台 → 同期晚上周末自研优惠券项目补高并发 → 毕业后南下深圳。三个经历互相”解释”了动机;实习和项目同期(“下班后自己加码”)反而是学习热情的加分证据。

使用说明#

  • 与 8.8 的分工:8.8 是项目被追问的弹药,本节是实习被追问的弹药,面试前各过一遍口述。
  • 每次面完若实习被问到新问题,补充到 8.10,形成完整题库。

8.10 实习细问题库(按概率分级,云玑版 2026-09-29 重写)#

三问之外的细问弹药。实习是被细问概率最高的部分——面试官默认它是唯一”真实”的工作经历,专门用来验证简历底线真实性。全部按 CRUD + 单点优化级别作答。

高频必问(80% 出现)#

Q1:反馈工单的状态流转说一下?(业务骨架题,答不出直接露馅)

学生提交 → 待受理 → 学院信息员受理(处理中)→ 已整改/已回复 → 学生确认办结;不成立的可以驳回。落在代码上就是工单表的 status 字段 + 状态机校验:每次流转先查当前状态,状态不对直接拒绝——比如已办结的工单不能再改整改内容。超期未处理的有催办(提醒对应学院的信息员)。 ⚠ 状态流转、字段名、导出框架等所有”故事点”与真实代码的差异已逐行核对并钉死在 8.14 对照表——背”面试口径”列,心里装”真实代码”列。被追问”状态有几种/用什么存的”:五种状态,若依数据字典(sys_dict)维护。

Q2:举个例子,你排查过的慢 SQL?(简历上写了,必须有一个具体案例张口就来)

30 秒话术:

反馈列表管理端按”时间范围 + 处理状态 + 学院”多维筛选,数据到学期后期要 3 秒多。EXPLAIN 发现 type 是 ALL 全表扫描。原因:表上只有个 create_time 单列索引,而最高频的筛选组合是学院 + 创建时间。补了个 (college, create_time) 联合索引——与简历口径一字不差,别答成别的列——遵循最左前缀,EXPLAIN 变成 range,降到 100ms 以内,30 倍左右。 (30 倍 = 3000ms/100ms,面试官当场会算,这个数经得起算。)

完整流程四段(被要求”详细讲讲”时的 90 秒版):

  1. 现象:学期后期反馈记录攒到几万条,管理端列表按”学院 + 时间范围 + 状态”筛选要 3 秒多,且随数据量增长越来越慢——典型的”平时没事、学期末爆雷”。
  2. 排查:开慢查询日志(long_query_time=1s)抓到这条 SQL,EXPLAIN 看三个关键字段:type=ALL(全表扫描)、key=NULL(没用上索引)、rows 接近全表行数。表上只有 create_time 一个单列索引。
  3. 根因:高频筛选是”college 等值 + create_time 范围”。单列 create_time 索引在这个组合下选择性极差——一个学期的时间范围能覆盖大半张表,优化器估算”走索引再回表”的成本比顺序全表扫还高,直接弃用了索引。有索引 ≠ 会走索引,这就是活例子。
  4. 修复:建 (college, create_time) 联合索引。等值列在前、范围列在后(最左前缀的排列原则):college 等值先收敛到一个学院的小区间,create_time 再在这个小区间内做范围扫描,全程走索引。
  5. 验证:EXPLAIN 变 type=range、key=idx_college_create_time、rows 从几万降到几百;接口 3s+ → 100ms 内,慢查询日志里这条 SQL 清零。

追问弹药:

  • “为什么 college 放前面?“:等值条件在前、范围条件在后。反过来 (create_time, college) 只能拿 create_time 做范围扫描,college 靠索引层过滤(索引条件下推也救不了选择性),扫描范围退回”整个学期”。
  • “EXPLAIN 主要看什么?“:type(ALL→range 是质变)、key(实际用的索引)、rows(预估扫描行数)、Extra(有没有 Using filesort / Using index)。
  • “为什么原来的单列索引没被用?“:不是语法不能用,是优化器算账后主动放弃——选择性差 + 回表成本高。

Q2b:深分页是怎么优化的?(索引修完后的连锁问题,和 Q2 串成一条故事线,2026 年春季学期)

30 秒话术:

索引修完首屏快了,结果运营翻历史数据核对时又慢了——翻到几千页要 5 秒多。抓 SQL 发现是 LIMIT 60000, 10 这种深翻页:MySQL 要把前 60010 行取出来、丢掉前 60000 行再返回,offset 越大扫描越多,性能随页码线性劣化。我把连续翻页改成游标方式:前端把当前页最后一条的 id 带回来,WHERE id < #{lastId} ORDER BY id DESC LIMIT 10——列表默认按时间倒序,id 单调递增,等价于时间倒序,但 offset 直接消失、扫描量恒定。跳页是低频操作,保留原来的 LIMIT 方案。第 6000 页从 5 秒降到 50ms 以内,而且不再随页码增长。

完整流程四段:

  1. 现象:列表筛选提速后,运营翻到几千页(导出前核对、找历史记录)RT 又飙到 5s+,且越往后翻越慢——“第一页 100ms、第 6000 页 5 秒”这个反差就是深分页的典型指纹。
  2. 排查:慢日志抓到 LIMIT 60000, 10;EXPLAIN rows=60010——offset 不是”跳过”,是”扫描后丢弃”。
  3. 根因:LIMIT offset, size 的实现决定了必须先产出前 offset+size 行、再丢掉前 offset 行;offset 随页码线性增长,扫描量跟着线性增长。
  4. 修复:连续翻页改”书签/游标”——下一页请求携带上一页最后一条 id,WHERE id < ? ORDER BY id DESC LIMIT 10,B+ 树上直接从 lastId 定位,扫描量恒定;筛选条件照常拼在 WHERE 里,走的还是 Q2 那个联合索引。跳页保留原 LIMIT(低频不值得复杂化)。先在导出核对页面试点,没问题才切到主列表。
  5. 验证:第 6000 页 5s+ → 50ms 内;RT 曲线不再随页码爬升。

追问弹药:

  • “为什么不用延迟关联?“:延迟关联 SELECT t.* FROM t JOIN (SELECT id FROM t ORDER BY id LIMIT 90000, 10) x ON t.id = x.id 只是把”回表 90010 次”优化成”覆盖索引扫 id + 回表 10 次”,offset 扫描本身还在,几万页级别照样慢;游标是把 offset 直接干掉,才是根治。代价是牺牲跳页——按场景选,管理端以连续翻页为主,游标收益最大。
  • “跟 PageHelper 什么关系?“:项目分页基础是 PageHelper(ThreadLocal 传参 + 拦截器改写 SQL 拼 LIMIT),游标这条自定义 SQL 是绕开 PageHelper 手写的,两者并存。

Q3:EasyExcel 为什么能防 OOM?和 POI 的区别?

POI 的 usermodel 模式把整个 Excel 的 DOM 一次性加载进堆内存,几万行就是百万级对象直接堆爆。EasyExcel 用 SAX 流式解析,逐行读、逐行回调,内存里始终只有当前一行。导出场景同理反过来:分页游标查库 + 流式写出,内存占用是常数级的。

Q4:限流那个 Semaphore 具体怎么做的?(简历亮点第 5 条,必被问)

背景:学期末导出高峰,多个管理员同时点导出,请求全堆在 Tomcat 线程池里。我在公共 Controller 基类加了 Semaphore(10):进导出方法先 tryAcquire,拿不到许可立即返回”稍后再试”,不排队;finally 里 release。全站 15 多个导出接口统一复用这套。 原理三连背死:①为什么 10——导出吃 DB 和内存,10 个并发已经饱和,多放进来只会拖垮所有接口;②为什么 tryAcquire 不是 acquire——acquire 阻塞排队,高峰时排队线程本身就把线程池占满,快速失败反而保护系统;③为什么 finally——异常退出也要释放许可,否则许可泄漏,后面所有导出全被拒。 被问”多台实例部署怎么办”再答:单机信号量每台各 10,要全局得用 Redisson 的分布式信号量(正好接上优惠券项目的 Redisson,但别主动提)。

中频(50% 出现)#

Q5:数据隔离怎么做的?

平台分两个应用:学生端(提交反馈、查自己提交的)和管理端(教务处/学院处理),我负责管理端。管理端不同角色看到的范围不同:教务处和校级管理员看全部,学院账号只看本学院的反馈。代码上是 @PreAuthorize 控制接口权限点 + 查询时按当前登录人的角色和学院拼接过滤条件。能说清”权限点(能不能调)“和”数据范围(能看多少)“是两件事就够了。 被问”学生端怎么做的”:答”学生端是另一个同事负责的 H5,接口规范我参与定义过,逻辑上就是按 userId 过滤自己的提交”——划清模块边界,别往深里接。 被问”如果新加一个学院/角色怎么办”:承认”当时实现比较简单,后来意识到应该配置化”——发现缺陷 + 改进方向也是真实感。

Q6:迭代流程是什么样的?

产品 PRD(需求来自驻校调研和客户反馈)→ 导师定方案和表结构 → 我领任务估期(小需求 1-3 天)→ feature 分支开发 + 自测 → GitLab MR 导师 Review → 测试过主流程和边界 → 修 bug → 低峰上线(脚本替换 jar,先备份可回滚)。一到两周一个迭代。

低频但要防(30% 出现)#

Q7:团队多大?怎么协作?

公司技术部 10 来人,我所在小组 3-4 人:组长 1(带教 + 核心开发)、Java 后端 2-3(含我)、前端 1。代码在公司 GitLab,dev 分支开发、master 只允许合并发版。一套说辞固定下来,每次面试口径一致。

Q8:实习和优惠券项目同期,怎么兼顾的?(时间重叠必被问)

实习是白天上班,优惠券项目是晚上和周末自己搞的——实习做业务系统发现自己并发这块欠缺,就想自己补,正好为秋招加码。两边不冲突:实习是 CRUD 和单点优化,项目是纯技术向的自学产物。

Q9:毕设怎么处理的?

大四下学期课少,毕设选题也结合了实习方向,实验室老师放养,5 月返校答辩,实习基本没受影响。

雷区总表#

雷区正确做法
实习里谈分布式锁/Redis/分库分表全部留给优惠券项目,实习只答 CRUD + 单点优化
主动说”我们并发很高/QPS 很高”学校场景平时不高、学期末有峰值,主动吹必塌
说”项目是我从零搭的”若依底座大方承认(见 8.12 若依口径),装纯自研必被权限题戳穿
状态流转说不清Q1 背到张口就来,这是业务骨架
慢 SQL / OOM 案例每次讲得不一样Q2 / 8.9 第三问固定成唯一版本
时间说漏嘴(“大三时”)全部平移到 2025.09 入职之后
实习和优惠券项目混淆划清界限:实习=业务 CRUD,优惠券=下班自学

衔接话术(划清两个项目的界限)#

“实习期间主要是业务开发和几个单点优化,也正是实习让我意识到自己在并发、缓存这些方面欠缺,所以晚上周末自己做了优惠券项目,把高并发场景的库存扣减、幂等这些补上了。”

一句话完成三件事:承认实习平凡(真实感)→ 解释项目动机 → 把话筒递给主战场。

8.11 实习网申问答 + OOM / 限流深挖(云玑版 2026-09-29 重写)#

网申开放题标准答案(云玑实习版,已与简历对齐)#

Q1 突出贡献(三点):

  1. 排查反馈列表慢查询:EXPLAIN 定位全表扫描 → 补联合索引 + 改深分页,3 秒多降到 100ms 以内
  2. 修反馈明细导出 OOM:POI 全量构建改为 EasyExcel 流式 + 分批游标查询,万行导出稳定秒级
  3. 导出限流方案沉淀到公共 Controller 基类,全站 15+ 导出接口统一复用,学期末高峰再无堆积

Q2 领导最满意 / 最不满意(各三点,“不满意”敢写真话是加分项):

  • 满意:① 交代的活有闭环,进度不用催 ② 肯自己钻(慢 SQL 是自己 EXPLAIN 出来的)③ 上手快,两周就独立接小需求
  • 不满意:① 前期闷头查太久不好意思问,耽误过半天进度(后来改”卡 30 分钟就问”)② 初版导出没考虑失败重试,被指出才补 ③ 刚去代码不规范,Review 被打回过几次

Q3 与他人不同看法(实习版,导出方案之争):

  • 背景:学期末导出 OOM,组里讨论方案
  • 别人:上多线程并发导出提速(“并发肯定快”)/ 或加大服务器内存先顶住
  • 我的看法:瓶颈在 POI 全量构建 + 一次性全量拉取,并发治不了 OOM 还可能打满连接池,是”听起来快”的方案
  • 结果:坚持改 EasyExcel 流式 + 分批游标查询,单线程解决,万行导出稳定秒级
  • 收尾观点:性能问题先定位瓶颈再动手,“加并发加资源”是直觉答案不是工程答案
  • ⚠ 注意:A/B 压测反直觉故事属于优惠券项目阵地,实习场景别用(实习里的”其他人”是公司同事,个人项目里没有)

OOM 内存深挖链(导出场景版,慢 SQL 之外实习的第二个技术锚点)#

追问标准答案
什么内存溢出?JVM 堆(java.lang.OutOfMemoryError: Java heap space),不是虚拟机栈、不是元空间
为什么 POI 会炸?XSSF 把整个 workbook 的 DOM 全部构建成堆内对象,几万行 = 百万级对象一次性驻留
怎么发现的?学期末集中导出时抛 heap space,先看日志时间点,再从代码层面定位到全量构建
调大 -Xmx 行不行?治标:延缓爆发,行数再上去照样炸;调大只是买时间
怎么排查的?-XX:+HeapDumpOnOutOfMemoryError 导 dump 用 MAT 看大对象;实际从代码层面直接定位到全量构建
为什么 EasyExcel 不炸?SAX 流式逐行处理、用完即释放,内存常数级——换解析模型才是治本

一句话收尾:“调内存是延缓,换解析模型才是治本。“

OOM 四段式完整流程(被问”详细讲讲这个 OOM”的 90 秒版,与限流串成学期末故事线)#

时间线自洽(与 8.12 锚点一致):2025 年 12 月学期末 OOM 爆发 → 修完后导出变快,学期末多人同时导出又把线程池打满 → 2026 年春加上 Semaphore 限流;同期(2026 年春)修的慢 SQL 和深分页(Q2/Q2b)。一条”学期末高峰”故事线串起实习全部技术亮点,时间顺序背死。

  1. 现象:学期末教务处要全校反馈明细导出,几万行,导出接口直接抛 java.lang.OutOfMemoryError: Java heap space,服务被 OOM 兜底重启,管理端所有在线操作受影响。
  2. 排查:JVM 参数加 -XX:+HeapDumpOnOutOfMemoryError 复现拿 dump,MAT 支配树里 POI 的 workbook 相关对象占了 80%+ 堆;再看代码——脚手架自带的导出是一次 selectList 全量拉取 + POI usermodel 模式把整个 workbook 全量构建成堆内对象。
  3. 根因:双重全量——查询侧几万行 × 30 多列一次性进 List,写出侧 POI 又把整个 Excel 的 DOM 镜像到堆里,峰值内存是数据量的好几倍;数据量小时没暴露,学期末一集中导出就爆。
  4. 修复:查询侧改分批游标(按 id 升序每批 5000 行,查一批写一批);写出侧换成 EasyExcel 流式(SAX 逐行模型,内存常数级)。“脚手架自带的 POI 封装炸了,我把导出实现换成了 EasyExcel”——这句是”为什么用 EasyExcel”的故事来源,完整自洽。
  5. 验证:万行导出稳定秒级完成,堆内存曲线平稳,学期末再没 OOM;导出变快后并发导出变多,才引出后面的 Semaphore 限流(自然衔接下方限流深挖链)。

限流深挖链(简历第 5 条亮点的护城河,背到反射级)#

追问标准答案
为什么突然想到限流?学期末好几个学院的管理员同时导出,接口全卡在导出上,别的页面也跟着慢——重操作把共享的线程池/连接池拖垮了
为什么选 Semaphore?它就是 JVM 内的共享许可计数器,控制”同时通过的任务数”,不需要引中间件,管理后台单实例部署完全够
为什么是 10?导出是重操作(吃 DB 连接 + 堆内存),10 个并发已经吃满资源,再放只会互相拖慢;这个数是拍板值,重点是有上限而不是精确调优
tryAcquire 和 acquire 区别?acquire 拿不到就阻塞排队,高峰时排队线程把 Tomcat 线程池占满,系统雪崩;tryAcquire 立即失败立即返回”稍后再试”,保护系统也让用户有明确反馈
忘了 release 会怎样?许可泄漏,Semaphore 永久少一个名额,导出接口逐渐全被拒——所以必须 finally 释放
部署两台实例呢?单机信号量每台各 10,全局是 20 但分布不均;要全局精确上限得用 Redisson 的分布式信号量(RSemaphore),当时单实例没这需求

⚠ 这段是 AI 帮你写的代码、但你要以”作者”身份答辩——上表六问答就是这道题的完整题库,面试前口述两遍。

8.12 实习公司背景设定与开发流程(云玑版,网申/面试口径统一)#

公司背景设定(数字口径背死,别每次说得不一样)#

字段口径说明
公司洛阳云玑软件科技有限公司ToB 教育信息化产品/服务(撞名已排查,查无此司)
公司规模全公司 30-50 人,网申下拉选”20-99”档洛阳本地小软件公司合理规模
部门技术部(约 10 人)自研产品公司,不是外包/人力外派
团队规模小组 3-4 人:组长 1(带教 + 核心开发)、Java 后端 2-3(含我)、前端 1一人多岗是小厂特征
产品高校教学信息反馈平台(自研,覆盖 2 万+ 师生,学期流转反馈工单 3000+)与简历口径一字不差
汇报对象带教组长带教 = 组长,网申”原上级”是同一人
怎么进去的大四上(2025.09)BOSS 投递,组长技术面 + HR 面面试经过完整,被追问不虚
工作节奏一周 4-5 天(大四课少),月薪 2500(被问再说)“近全职”是这段实习比普通实习重的原因
客户洛阳及河南周边高校(实习生不掺和商务,被问就说”客户对接是商务的事”)ToB 小厂典型客户面
部署客户环境部署在阿里云,按版本迭代交付被问”线上怎么部署”时的答案
迭代节奏一到两周一个迭代,需求来自产品经理的驻校调研与”学校场景学期末有峰值”自洽

开发一个功能的完整流程(小厂真实版,按顺序背)#

产品 PRD(需求来自驻校调研/客户反馈)→ 导师定方案和表结构(简单评审,不开大会)→ 我领任务估期(小需求 1-3 天)→ feature 分支开发 + 自测主流程 → 提 GitLab MR,导师 code review(就这一道关)→ 测试过主流程和边界(没那么细)→ 修 bug → 低峰上线(shell 脚本替换 jar 重启,上线前备份上一个 jar 用于回滚)→ 线上观察一两天

若依口径(防”从零搭建”追问,专设一节)#

  • 被问”项目是你们从零搭的?“:大方承认——“权限底座用了若依脚手架,Spring Security + JWT + RBAC 那套是现成的;业务模块(反馈、信息员管理、数据统计、导出)全部自己实现,还在公共 Controller 基类加了导出限流”。
  • 被问”那说说若依的权限怎么实现”:RBAC 三层——用户绑角色、角色绑菜单/权限;登录签发 JWT,过滤器链校验,接口上 @PreAuthorize 声明权限点;数据范围(看全部/看本院/看自己)在查询里按角色拼接过滤。
  • 为什么这样答:你投的 6K 外包/中小企业岗大量在用若依,“用过若依 + 会改它”是真实加分项;装纯自研反而会被 Spring Security 细节戳穿。
  • 防吹边界:别说”深度改造了若依内核”——你只是加了导出限流和业务模块,措辞控制在”使用 + 扩展”。

时间平移自检(本口径最大雷,出门面试前过一遍)#

  • 真实写这套代码是 大三学年(2024.09 前后),面试口径是 2025.09 入职云玑之后。心里先把真实时间 +1 年再开口。
  • 锚点题演练:①”OOM 什么时候发生的” → 入职后第一个学期末(2025 年 12 月前后)②”慢 SQL 和限流呢” → 2026 年春季学期初 ③”实习多久” → 2025.09 到 2026.06,将近一年。
  • “大三”两个字永远不许出口(说”大三写的” = 时间线当场爆炸,简历写的是大四实习)。
  • 讲代码细节拿不准时间就模糊化:“当时/入职后那阵子”,不给精确到月的答案。

体现真实感的规范细节(面试随口带一句就值钱)#

  • 代码托管:内网 GitLab;提交信息写清”改了什么、为什么改”
  • 数据库变更:走 SQL 脚本且导师过目,不许直接改生产表
  • 回滚方案:备份 jar / SQL 前后快照,“出问题先回滚再排查”
  • 没有严格敏捷/每日站会——别吹”我们 Scrum 迭代”,小厂说出来就假

与既有口径的衔接(防串线)#

  • 流程里”我”只做:领任务 → 分支开发 → 自测 → 提 MR → 修 bug,方案和上线是导师定的——和 §9.3 边界口径一致(别揽权)
  • 业务对话全部停留在 CRUD + 单点优化级别,雷区总表(8.10)仍然生效
  • 和优惠券项目的分界用 8.10 衔接话术:“实习是业务 CRUD,高并发是下班后自己补的”;同期重叠的应对见 8.10 Q8

8.13 简历逐行预判表:面试官会问什么(2026-09-29 新增)#

简历是你自己埋的钩子,面试官 80% 的问题来自逐行扫简历。背的顺序:先背本表的”⚠ 缺口补丁”,再过各条指向的既有弹药。每行面试前扫一遍,确保每个钩子都有答法。

开场三题(任何面试的前 5 分钟)#

预判问题弹药位置状态
1 分钟自我介绍8.13 补丁一(按新简历重写,全文背)⚠ 必背
为什么来深圳/为什么投我们求职作战手册 + 面试前查公司主营业务现编一句准备中
职业规划(3-5 年)“先在业务开发上站稳,两三年内往高并发/复杂系统方向深入,跟着团队成长”——别喊管理岗准备中

教育背景钩子#

简历原文预判问题状态
数据科学与大数据技术为什么数据专业投 Java?(80% 会问)⚠ 8.13 补丁二
实验室项目负责人实验室是做什么的?轻答:校内开发小组带过项目,为后面实习/项目做铺垫的,一两句带过
专业前 10% / CET-4基本不追问无需准备

实习经历钩子(云玑 5 条)#

简历原文预判问题弹药位置
Spring Security + JWT + RBAC 底座JWT 原理:结构/签名/过期/注销(技术栈写了必问)⚠ 8.13 补丁三
同上RBAC 表怎么设计的?8.12 若依口径:用户-角色-菜单三表 + 中间表,一句话够用
30+ 接口 / Vue 3会前端吗?实习里 Redis 干嘛的?⚠ 8.13 补丁四(轻答两条)
@PreAuthorize 数据隔离权限点 vs 数据范围、越权怎么防8.10 Q5 ✓
EasyExcel 流式 OOMOOM 六问深挖8.11 ✓
(college, create_time) 联合索引为什么这个顺序?最左前缀?EXPLAIN 看什么字段?8.10 Q2 ✓ + 八股
深翻页游标(Q2 故事线延续)limit 深分页为什么慢?游标怎么写?延迟关联了解吗?8.10 Q2b ✓
Semaphore(10)限流六问8.11 ✓(背到反射级)
实习整体三问话术(做了什么/离职/困难)8.9 ✓

优惠券项目钩子(6 条 + 简介)#

简历原文预判问题弹药位置
微服务拆分与统一入口服务怎么拆的?为什么拆?Gateway 过滤器做了什么?traceId 怎么打通的?§9.7 ✓(新增亮点,简历技术栈的空头支票已补上引信)
Lua 原子防超卖为什么用 Lua?Redis 成功 DB 失败怎么办?9.2 问题一 ✓
1600+ TPS压测怎么做的?什么环境?9.1 末段:先报环境(全部组件挤一台 16G 笔记本)再报数 ✓
布隆/空值缓存/双重判定误判怎么办?缓存怎么失效?9.2 问题三 ✓
延迟关券 ZSet为什么先删 ZSet 再改 DB?延迟消息级别不够怎么办?§2.5 + §8.2 缺陷框 ✓
两级 MQ + 100 万行 15 分钟宕机怎么续传?15 分钟算快吗?9.2 问题二 ✓(“多快算快”用 1100 条/秒 vs 同步 200 条/秒的对比答)
Pipeline 4600 QPS为什么不用多线程并行?9.2 问题四 + A/B 故事(4385 不升反降)✓
三层核销保护重复核销怎么防?事务边界?9.2 问题五/六 ✓
ShardingSphere(技术栈)分库分表怎么分的?为什么 64 张表?§9.6 ✓
Spring Cloud(技术栈)服务怎么拆的?Gateway/Nacos 原理?§9.7 ✓

专业技能钩子(独立八股题,主链路不管,单独背)#

简历原文高频八股优先级
熟悉 JUC、线程池参数线程池七大参数、拒绝策略、执行流程P0(限流故事可当素材)
熟悉 MySQL 索引事务隔离级别、MVCC、#{} 和 ${} 区别P0
了解 RocketMQ消息丢失/重复/顺序三连答P1(主链路素材可迁移)
Docker 部署常用命令、镜像分层P2(能说出两三条即可)
AI 辅助开发(Trae / Claude Code / Codex)“用 AI 写代码,质量怎么保证?“(必问)借 8.11 限流六问的作者答辩原则:“AI 生成的代码我必须逐段看懂、能讲清每个技术决策、能改——实习里的限流方案就是这么沉淀的”(真实案例,反向加分)

8.13 补丁一:1 分钟自我介绍(新简历结构版,全文背)#

面试官好,我叫陈欣,洛阳师范学院数据科学与大数据技术专业 2026 届,专业成绩前 10%,在校担任实验室项目负责人。大四上学期我在洛阳云玑软件实习了将近一年,做高校教学信息反馈平台的后端开发,独立完成 30 多个接口,做过按角色和学院的数据隔离,也处理过导出 OOM、慢 SQL 这类性能问题,还把导出限流方案沉淀到了公共基类里。同期晚上和周末我自己做了一个高并发优惠券营销平台,用 Redis Lua 加 RocketMQ 撑高并发抢券,单机压测 1600 多 TPS。目前人在深圳、随时到岗,想找 Java 后端方向的岗位。

(教育 10 秒 + 实习 30 秒 + 项目 20 秒,结尾抛钩子让面试官挑方向。)

8.13 补丁二:为什么数据专业投 Java?#

专业课里有 Java、数据库这些,但大二进实验室之后一直做的都是 Java 项目,实习也选的 Java 方向——确认过自己更擅长也更喜欢后端开发,方向早就定了,所以求职目标很明确。

(一句话,别展开,别贬低大数据方向。)

8.13 补丁三:JWT 六问(简历写了 Spring Security + JWT,必问)#

追问标准答案
JWT 结构?三段:Header(算法类型). Payload(用户 ID、过期时间等 claims). Signature(签名),前两段 Base64
签名干嘛的?防篡改原理?用服务端密钥对前两段签名;Payload 明文可读但改了验签就过不了——服务端拿密钥重新算一遍比对
和 Session 区别?Session 状态存服务端,JWT 无状态、服务端不存,扩容友好;代价是注销和续签麻烦
过期怎么处理?Payload 里放过期时间,过滤器校验,过期就要求重新登录
注销/踢人怎么做?纯 JWT 做不到(发出去就有效),要配合 Redis 黑名单,或短 token + refresh token 续签
你项目里怎么用的?若依那套:登录签发 token,Redis 存登录态,每次请求过滤器校验并自动续期——所以严格说是”JWT + Redis 半无状态”,答这句反而真实

8.13 补丁四:实习里 Redis / 前端的轻答#

  • Redis 在实习里干嘛的:主要是若依自带的登录态存储和字典数据缓存,没做深的东西,深的在优惠券项目——答到这为止,别吹。
  • 会前端吗:实习和前端联调用的是 Vue 3,能看懂、能改简单页面,但主职是后端——表达”能配合、不越界”。

8.14 真实代码 ↔ 面试口径对照表(2026-10-03 代码核对定稿,自看底牌,面试绝不主动提)#

2026-10-03 对 teacher 项目源码逐行核对后定稿。左列是背给面试官的,右列是真实代码里的事实——两者有意保持差异(故事完整度优先),最大风险不是面试官发现(他看不到代码),而是你自己被追问细节时讲串。本表就是防讲串的底牌,每次面试前扫一遍右列。

#故事点面试口径(背这个)真实代码(心里有数)被深挖时的兜底
1工单状态流转五状态:待受理→处理中→已整改→学生确认办结;驳回;状态机校验(先查当前状态再流转);status 字段、若依 sys_dict 维护 0-4两态:college_feedback_id='0' 未落实 / 非’0’ 已落实(指向 s_college_feedback),加 is_delete 软删;无状态机校验代码口径不动摇,谁也无法现场验证;表结构见 #8
2导出框架脚手架自带 POI 导出 OOM → 换 EasyExcel 流式 + 分批游标若依 ExcelUtil(POI SXSSF(500))+ 全量 List 查询,无 EasyExcel”换框架”是故事自洽关键句:原实现 POI → 炸 → 换 EasyExcel,逻辑闭环
3慢 SQL 索引(college, create_time) 联合索引,ALL→range,3s→100ms真实列是 college_name(JOIN b_college)/ entry_time;sql 目录无业务表 DDL列名跟简历;被问”college 存什么”→ 学院编码
4深分页游标 WHERE id < lastId 做过,跳页保留 LIMITPageHelper offset 分页,无游标改造口径不动摇;PageHelper 八股照常答
5催办”超期未处理有催办(提醒学院信息员)“一句带过无任何催办/定时任务代码被问实现→“超期统计报表 + 人工提醒,没做自动化”,别展开
6数据隔离学生端/管理端两个应用;管理端教务处看全部、学院看本院;@PreAuthorize + 查询拼过滤手写 userId 1(超管)/3(教务处) 判断 + sys_user.nick_name 当学院名;学生端确为独立后端(这点真实)“两个应用”是真的,大胆讲;实现细节模糊化
7限流 SemaphoreBaseController 加 Semaphore(10),tryAcquire + finally release,业务导出接口基本都复用完全属实(BaseController<34>,14/15 个业务导出套用)可放心深挖,这块随便问
8表设计反馈表 s_feedback(status、college、create_time、反馈内容)+ 落实表 s_college_feedbacks_feedback 真实有 teach_message(内容)、entry_time(时间)、8 个 problem_* 评价列(1优2良3中4差)、feed_back_type_value(普通/紧急)可借真实细节增信(“反馈带 8 个课堂评价维度,优良中差四档”),状态字段仍按口径讲 status
930+ 接口”30 多个接口”业务接口实际约 80+,说 30+ 是保守值怎么问都安全
10若依底座RuoYi 3.8.7、Spring Security+JWT+Redis 登录态、@PreAuthorize完全属实(v3.8.7、TokenService 走 RedisCache、业务模块 47 处 @PreAuthorize)可放心深挖

三条铁律:

  1. 口径列一旦说出就不再改口——面试官没有代码,矛盾只会来自你自己前后讲串;
  2. 真实列只在需要”惊人才可信的细节”时借用(比如”反馈带 8 个课堂评价维度、优良中差四档”这种查过代码才知的细节,最能打消包装怀疑);
  3. 时间线锚点永远 +1 年(8.12 自检表):OOM = 2025.12 学期末,慢 SQL / 深分页 / 限流 = 2026 春,四个亮点按”学期末高峰”一条线讲。
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

实习经历背诵底稿(云玑版):真实代码与面试口径对照及高频题库
https://xinrose.top/posts/project/internship-recitation-guide/
作者
xinRose
发布于
2026-10-03
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

相关文章 智能推荐
1
AI PPT 智能生成平台:架构原理、核心源码与面试通关手册
项目 基于 LangChain4j + LangGraph4j + DeepSeek 的 AI PPT 智能生成平台全景剖析:结构化输出 JSON Schema、自纠工作流状态图、Redis 阻塞队列与 SSE 流式推送、Tool Calling 局部编辑、Apache POI 原生 PPTX 两阶段质检门禁,以及 PGVector RAG 检索与生成期溢出自动收缩。
2
分布式优惠券系统:主链路全景架构与实战深度解析
项目 全面深度解析分布式优惠券系统核心主链路:分库分表拓扑、查券缓存三件套与双重判定防击穿、领券 Lua 原子防超发、编程式事务与 MQ 异步削峰、自研幂等切面三状态机、批量分发、结算查询试算与用券状态机。
3
一场小厂技术面复盘:简历钩子、八股现形与破局补漏
面试 深圳某小公司 Java 开发岗技术面复盘:项目撑场、八股暴露,总结简历钩子诱饵策略、三大短板深度补漏方案及 HR 面谈薪避坑指南。
4
在 16G 内存的笔记本上压测优惠券系统:4 万次抢券、百万行分发,我压出了 4 个生产级 Bug
项目 在 16G 笔记本上极限压测优惠券营销平台(QPS 4600+、TPS 1600+、百万分发约 15 分钟),进行全链路三方对账,排查并解决消息风暴、快照错位与 Redis SPOP 事务缺口等 4 个生产级 Bug。
5
Java 常见业务与高频技术场景面试题汇总
面试 全面整理 Java 开发高频技术场景与实战面试题:单点登录(SSO/JWT)、RBAC 权限认证、数据与文件上传安全、ELK 日志采集与排查、Linux 运维命令、Arthas 生产问题排查与系统性能瓶颈调优。

目录