自我介绍

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.反问