面试面经-真实篇

自我介绍

2025.8.4版本:

您好,我叫xxx,来自齐鲁工业大学,主攻 Java 后端开发方向。

在校期间,我积极参与开源社区,在 GitHub 上持续贡献代码。比如在 Spring AI Alibaba 项目中,我实现了模板节点功能、修复了 NPE 异常,并完善了 JSON 结构的表达逻辑;也为 Fastjson2 提交了多个 PR,修复了关键 Bug,并深入学习了其源码设计。

在技术栈方面,我熟练掌握 Spring Boot 与 MyBatis 框架,能够独立进行完整的接口开发;熟悉 Redis、MySQL、RocketMQ 等常见中间件,了解其使用场景与性能优化思路。我也习惯于搭建本地环境做实测,熟练使用 Docker、IDEA、Apifox 等工具进行开发与调试。

同时,我也热衷于知识分享,平时喜欢通过写博客总结学习过程中的技术要点和实战经验,一方面加深理解,也希望能帮助到其他开发者。

我对后端架构设计与工程实践充满热情,感谢您给我这次面试机会,期待有机会为贵公司贡献力量。

自我真实面试

6.30宁波某小厂

40min腾讯会议,项目是外卖和MyDB

1.问的学业情况,课程情况,到岗情况

2.悲观锁和乐观锁

CAS and AQS

3.java常用的集合,List/Map

Arraylist,LinkedList HashMap,线程安全

4.常用集合来做什么,具体的应用

HashMap去重

5.MVCC的实现原理

read view,当前读 快照读 事务id

6.双token的应用和设计

token refreshtoken

7.了解若依平台吗?只知道是个啥。。。。

8.项目中并发的场景

行级锁,updata语句

9.索引是啥,索引失效的情况。

聚簇,联合,非聚簇,覆盖索引

最左前缀原则,or 函数 运算 范围查询 联合索引没覆盖 索引跳跃 模糊匹配

数据类型不匹配

进行了大量更新,没更新索引和没更新alayls

10.mybits和mybits-plus的比较,复杂查询不用mybits-plus

11.还有一个xxx缓存啥的,我都没听清他说话,就直接说没听过了。

12.乐观锁的实现

Atomic原子类,时间戳,版本号

13.问用没用过python,答会用点,会点简单的爬虫

14.最近在学什么技术

15.反问业务,工资等等

16.线程池怎么使用

线程池参数,流程,使用场景

8.12 上海某小厂

1.自我介绍

2.redis的数据类型,加上实际的应用场景

3.sql查topk(limit,rank)

1.limit

2.使用rank函数,RANK()函数会为每一行数据计算一个排名,相同数值的记录排名相同,下一个排名会跳过相应的名次。

3.子查询和UNION ALL来实现

1
2
3
4
5
6
SELECT *
FROM student_scores
WHERE score IN (SELECT score FROM student_scores ORDER BY score DESC LIMIT k)
ORDER BY score DESC
LIMIT k;

4.java中的值传递和引用传递(忘了)

  • 值传递:方法接收的是实参值的拷贝,会创建副本。
  • 引用传递:方法接收的直接是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。

5.反问,答的都忘差不多了,直接给我结束了

尴尬了,好久没面试都忘差不多了,哭,但是竟然过了,上海120一天,肯定不去的啊

8.14济南某20人AI小厂

1.开源贡献

2.什么是MCP?

3.聊天持久化是怎么实现的

4.SpringAIalibaba里面的秒级搜索是怎么实现的

5.方法重写和方法重载

6.ConcurrentHashmap

7.RAG模式流程

8.了不了解python,相关的AI框架,Python库,FastAPI

9.Docker拉取镜像,启动项目,数据集

10.Git开发的流程

8.18 航图纵横北京500人+厂

  • 请简单做个自我介绍。
  • 你做的两个项目是在学校里自己做的吗?(追问:是否有模板,二次开发?)
  • 这两个项目中哪个熟悉一点,可以简单介绍一下?
  • 为什么要做多级缓存?
  • 你这个数据一致性是怎么保证的?(追问:有没有重试策略?Redis和本地缓存更新是分开还是原子操作?原子性如何保证?如果更新失败如何回滚?编程式事务如何实现?人工处理的细节?有监控报警吗?)
  • 请解释一下缓存穿透、缓存击穿和缓存雪崩,并分别说明你的解决方案。
  • JWT双Token认证,你这块是怎么做的?
  • 你知道JWT里边都分为哪些部分吗?
  • 你用ThreadLocal去存储,都是在哪些过程当中去存储的?(追问:请求结束后会释放吗?在哪个过程去释放?直接在注册接口里写吗?如果很多接口都需要存Token,如何避免重复工作?了解过滤器、拦截器吗?)
  • 你这个分布式锁是怎么用的?
  • 你知道Redis分布式锁它底层是怎么实现的吗?
  • 释放过程你看过吗?(追问:为什么要判断是不是当前线程持有的锁?什么情况下两个线程会持有同一把锁?)
  • 你集成的是什么大模型?怎么集成的?
  • RAG模式具体是怎么实现的?
  • 聊天记录持久化是怎么做的?持久化数据存到哪了?
  • 你知道什么是流式输出和非流式输出吗?
  • 了解过MCP吗?
  • 项目部署过吗?(追问:部署到线上抛异常怎么排查?根据关键字查日志怎么查?根据trace ID怎么查?)
  • 用到过线程池吗?
  • 线程池都有哪些参数?
  • 了解过异步编排吗?
  • Java本地锁有哪些?
  • synchronized是怎么实现的?(追问:markword的作用?与volatile的区别?)
  • 策略模式是怎么实现的?可以我说一下实现细节吗?
  • Kafka了解过吗?(追问:线上消息积压了怎么处理?为什么要一个消费者端对应一个partition?)
  • 反问

我吐,被抓着直接问场景题,问我项目出现问题了怎么解决,方案是什么。我直接傻眼了/(ㄒoㄒ)/~~,然后一紧张脑子还抽抽了还把ThreadLocal这个东西是啥给忘了。

8.19 商越科技 一面 100-499

20min的非常见八股拷打

1.HashMap的remove操作的过程,当从链表中删除一个节点后,它的前后节点应该如何处理?

2.@ConditionalOnClass 具体是干啥的,@ConditionalOnClass(User.class)这行代码能编译通过,说明User.class`肯定存在于classpath中,那为什么还需要这个注解呢?

3.UserMapper这个类为啥要是接口呢,你使用的持久层框架是什么?MyBatis 还是 MyBatis Plus?

4.ThreadLocal 在线程池中的失效问题

5.需要实现一个功能——“用户在10分钟之内连续输错三次密码,就禁止其登录”。如果使用 Redis,你会选择哪种数据结构来实现这个需求?如何具体实现“10分钟之内3次”这个时间窗口和计数逻辑?

6.你平时是否使用过 JUC(java.util.concurrent)包中的工具?可以举例说明吗?

7.最近在干什么?

答得一塌糊涂,平常没看过啊

8.26 优财云链 一面 100-499

Base杭州 30min钉钉会议

1.数组和链表的区别,加上ArrayList,LinkedList

2.面向对象,三大特性

3.反射&动态代理,构造器,动态代理JDK,Cglib

4.设计模式,单例,模板,策略,代理

5.Mysql索引,Innodb索引,SQL优化

6.SpringIOC,解释,三级缓存。

8.27 阿丘科技 100-499

1.自我介绍

2.了解微服务吗

3.线上问题排查

4.数组 vs 链表 (百万数据随机插入)

5.JMM

6.B+树

7.前端点击查询按钮到返回表格,整个过程的数据是怎么流转的?

8.点击按钮无反应排查

8.30 易招标 秦皇岛100-499

1.自我介绍

2.多级缓存一致性

3.双 Token 无感续签 & 退出登录

4.面向对象,抽象类,接口

5.JMM

6.IOC,AOP

7.30分钟未支付关单

8.SQL编写,人傻了,太紧张连group by 和order by 说反了,他还提醒我了😂

9.反问

易招标 二面 9.1

  1. 请做个自我介绍。
  2. 你有没有实习经历?
  3. 你是哪一年毕业的?现在大几?
  4. 你目前在哪个城市?家是哪里的?

  5. 你在 GitHub 上参与开源项目,修改完源码后是如何提交的?(提 PR)

  6. 参与开源项目有什么激励吗?(比如积分)
  7. 除了 Fastjson,还改过哪些项目的源码?
  8. 可以具体讲讲你对 RocketMQ 源码的修改吗?(追问了丢失第零条消息的问题)
  9. 你有没有自己做过一些小项目,把刚才说的技术(比如 AOP)应用进去?
  10. (追问 AOP 限流项目)你自己写过自定义注解吗?

  11. 介绍一下你所熟悉的技术栈。

  12. (针对 RocketMQ)它的底层是用 Java 写的吗?
  13. (针对自定义注解)如果想让一个注解作用在类上,对整个类生效(比如事务注解),应该怎么写?
  14. 你觉得数据库设计时,应该要注意哪些东西?
  15. 数据库里加索引,对更新(UPDATE)和删除(DELETE)数据在性能上有什么影响?

  16. 如果分配给你的任务,你评估后觉得无法按时完成,你会怎么处理?

  17. 我们这份工作在河北秦皇岛,可以接受吗?

  18. 对于加班怎么看?如果项目赶进度,加班会比较晚。
  19. 能接受出差吗?
  20. 如果面试通过,大概多久能入职?

9.4 均胜汽车 一面

一个小时,基本全程AI+聊天,无八股

  • 深入探讨了MCP(模型/微服务调用中间件)的原理和工作流程。
  • 分享了AI在生活中的应用场景,并延展到了构建AI Agent、自动化工作流(如Zapier, n8n)的宏大构想。

  • 讨论了日常的学习途径(GitHub, Google, YouTube等)以及如何利用AI辅助学习。

  • 分享了一次通过向阿里巴巴的开源项目提交PR(Pull Request)获得巨大成长的关键经历。
  • 探讨了对知识付费和工具付费(如ChatGPT Plus, Claude)的看法和实践。

  • 阐述了未来3-5年专注于Java与AI结合的职业规划。

  • 回答了一个关于“力挽狂澜”解决挑战的行为问题,以一个校内小组项目为例。
  • 详细介绍了一套解决技术难题的系统性方法论。

  • 解释了SQL中 INNER JOINLEFT JOIN 的区别。

  • 现场完成了一个关于“电视机开关状态”的编程题,并探讨了其设计模式(状态模式)的优化方向。

9.5 北京粽子科技 0-20AI小厂 一面

20min 腾讯会议

1.自我介绍

2.介绍项目,介绍开源项目

3.Springboot版本

4.@Bean@Component 注解的区别。

5.实现注册和登录功能的业务逻辑和流程。

6.全局统一异常处理的概念和相关注解。(忘了咋写了哈哈哈,@ControllerAdvice)

7.微服务间的通信方式,doubbo,grpc(我都没写微服务,怎么就问我了)

8.泛型(Generics)的理解和应用场景。

9.创建线程的多种方式。

10.竟然无反问,可恶啊,感觉答得也没那么糟糕吧

9.8 北京明光科技 20-99一面

1.自我介绍

2.开源项目

3.B+树索引

4.redis缓存三大问题

5.数据库一致性

6.多级缓存优化

7.线程池的使用

8.团队协作

9.微服务分布式(稍微说了说)

10.学业情况

11.和前端的协作

12.TCP三次握手四次挥手

9.10 郑州 安晨信息技术 100-499

1.hashmap和hashtable

2.IO多路复用

3.redis数据结构

4.间隙锁

5.同步锁

6.线程池

7.springboot的优化,自动配置

8.tcp三次握手四次握手

9.渐进式hash

10.B+树

11.LLM

12.设计一个用户登录表

13.设计一个订单表

14.sql联表查询

15.