同花顺Java后端一面面经

同花顺 · Java后端开发工程师 · 一面 · 上海 · 2026-07

《面试题目》

  1. 你的研究生方向是大模型,当下AI Agent岗位热度高机会多,为什么没有投递相关岗位,反而选择主攻Java后端?
  2. 现在应届生简历基本都会写Agent相关实践,你的简历却没有相关内容,近期有没有做过AI相关实操,比如使用AI编码工具、调用大模型API?
  3. 有没有用codex、Claude Code这类工具直接生成完整Web项目?
  4. Java后端项目和大模型相关科研分别是通过纯自学还是导师指导完成的?
  5. 如果把本地生活点评项目改成服务全校几万师生的校园后勤采购系统,从需求和技术层面讲,现有系统还缺少哪些内容?
  6. 当前项目仅本地单机部署,面对全校大量师生同时访问,现有架构能否支撑对应流量与并发压力?
  7. 想要评估项目并发承载能力,需要用到哪些工具,重点观察哪些核心指标?
  8. Redis中的Lua脚本是否属于插件,它在项目里起到什么作用?
  9. 如果不使用Lua脚本,如何同时实现一人一单校验和库存扣减的原子操作,防止超卖,该方案对比Lua有什么优劣?
  10. 之前很少有应届生写Redis Lua相关内容,现在几乎所有人都会写,怎么看待这个现象?
  11. 营销抽奖平台和本地生活点评项目技术栈相近,整体架构设计上存在哪些核心区别?
  12. 抽奖项目提前在Redis预装配概率映射池,随机数直接O(1)查询抽奖,对比实时随机数搭配多层if else判断有什么优势?
  13. 抽奖流程采用规则链做前置过滤、规则树做后置校验,这套设计相比堆砌大量if else代码有什么好处?
  14. 项目中依靠哪些条件识别恶意薅羊毛的用户?
  15. 如何监控用户异常抽奖、薅羊毛行为?异步线程统计用户行为搭配Prometheus监控告警具体怎么落地,告警阈值如何设置?
  16. 研究生大模型持续学习方向的研究内容,日常需要完成哪些核心工作?
  17. 有没有对比过国内主流开源大模型,各个模型分别有什么特点、擅长哪些场景?

(无手撕,面完正好30分钟)


《参考解析》

  1. Redis Lua脚本的作用:Lua脚本本身不是Redis插件,而是Redis内置支持的脚本能力,通过EVAL/EVALSHA执行。Redis单线程执行Lua脚本时保证脚本内多条命令的原子性,常用于「一人一单校验+库存扣减」这类需要多步判断和写入必须整体不可分割的场景,避免竞态条件导致超卖。
  2. 不用Lua如何防超卖:可以用INCR/DECR原子命令配合Redis事务(MULTI/EXEC)或分布式锁(如Redisson)实现,但事务不支持先读后写的条件判断(Redis事务不保证读到的值在提交时仍有效),分布式锁则引入额外的加解锁开销和锁竞争问题,性能通常不如Lua脚本一次性在服务端原子执行。
  3. 规则链+规则树设计的优势:规则链将多个前置校验规则(如黑名单、频次限制)串联成责任链,规则树按条件分支组织后置校验规则,两者都把散落的if-else判断收敛成可插拔、可配置的规则节点,新增/调整规则时只需增删节点而不改动核心流程代码,符合开闭原则,也便于单元测试和规则复用。
  4. 异常薅羊毛监控告警落地:通常用异步线程(如线程池+队列)批量统计用户维度的抽奖频次、中奖率、IP/设备重复度等行为指标,写入Redis或时序库,再通过Prometheus抓取指标、结合Grafana看板设置阈值规则(如单用户单位时间中奖次数超过均值N倍),触发告警后由风控规则联动限流或人工审核,避免同步阻塞主流程影响用户体验。
  5. 并发压测评估:常用JMeter、wrk或阿里开源的PTS压测工具模拟高并发请求,重点观察QPS/TPS、接口响应时间(P95/P99)、错误率、数据库连接池及Redis连接数、系统CPU/内存/GC情况,判断系统瓶颈点是在数据库、缓存还是应用层。