自我介绍
2025.8.4版本:
您好,我叫xxx,来自齐鲁工业大学,主攻 Java 后端开发方向。
在校期间,我积极参与开源社区,在 GitHub 上持续贡献代码。比如在 Spring AI Alibaba (opens in a new tab) 项目中,我实现了模板节点功能、修复了 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来实现
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.反问