后端 / Agent 开发一面面经
完整信息
本篇目录
面试日期:不便透露 10天之内
面试时长:约 55 分钟
面试形式:线上技术面试 + 在线 Coding
部门:相关业务中台部门
一、整体感受
这场面试主要围绕 Java 后端基础、数据库整体优化、业务场景设计和 AI 应用理解展开。虽然自我介绍中提到了实习Ontology 和其他项目,但后续没有长时间逐项深挖项目,而是较快进入基础题和开放题。
比较明显的特点有:
- 基础题相对常规,但会确认关键细节。例如 RabbitMQ 消息可靠性,面试官特别强调 ACK 应在消息处理完成后发送。
- 数据库优化是本场追问最密集的部分。面试官希望我站在数据库 Owner 的角度,面对多个团队共同使用数据库的情况,提出不同层面的解决方案。
- 开放题会不断要求换角度。不能一直围绕慢 SQL、索引和长事务展开,还要考虑资源、网络、数据访问需求、历史数据和团队治理。
- 系统设计会从实际产品需求出发。直播间点赞题要求从前端到后端考虑,我先确认了同一用户是否可以连续点赞。
- 岗位是后端工程、AI 和数据处理的结合。反问时面试官尤其提到了多种数据存储方式和数据批处理能力。
面试官整体愿意引导,也会给出自己的补充思路
二、自我介绍
面试官先介绍团队,然后 1~2 分钟做自我介绍。
随后面试官确认了主要开发语言,我回答主要使用 Java。
三、Java 基础题
简单介绍一下单例模式
什么场景适合使用单例模式?
long/Long 用 == 和 equals() 比较,结果是否一样?
四、RabbitMQ 与 Redis
RabbitMQ 如何避免消息丢失?
消费者应该什么时候 ACK?
如何解决缓存穿透?
五、MySQL 锁与分布式相关问题
行锁和表锁有什么区别?什么情况下触发?
你知道怎么实现分布式事务吗?
Redis 相关追问:从事务问题转到分布式锁
六、数据库整体优化开放题
如果你是数据库的 Owner,整个数据库性能比较差,你会怎么优化?
我的第一版回答
面试官追问:再扩展至少六个方向
连续追问
面试官没有让我一次性罗列完就结束,而是持续引导:
历史数据归档、分区都属于治理大表,除了分区,还有什么?
数据库设计、表设计方面,有什么思路?
面试官补充可以适当冗余字段,或者拆表,也讨论到了列过多的问题。
表设计先到这里,换一个方向,还能怎么优化?
- 面试官补充的方向
面试官说明这是开放题,没有唯一标准答案,并对这一段回答给予了比较积极的评价。
七、直播间点赞功能设计
题目场景
一个直播 App 要给每个直播间增加点赞功能。用户点击后,直播间左上角展示点赞总数,要求从前端到后端描述设计。我的设计思路
八、AI 相关问题
大模型上下文窗口是不是越大越好?为什么?
知识组织方式与 Ontology,分别适合什么场景?
九、在线 Coding
十、反问与岗位信息
十一、过往面试与实习状态
你四月份是否参加过字节面试?为什么没有继续?
现在在京东哪个城市实习?
十二、问题清单汇总
Java 基础
- 什么是单例模式?
- 哪些场景适合使用单例?
- long/Long 的 == 和 equals() 有什么区别?
MQ、Redis 与分布式 - RabbitMQ 如何避免消息丢失?
- 消费者应该在什么时候 ACK?
- 如何解决缓存穿透?
- 如何理解和实现分布式事务?
- Redis 相关追问:执行状态、Lua,以及 SET NX EX 分布式锁。
- 为什么抢锁和设置过期时间不能简单分两条命令执行?
MySQL 与数据库整体优化 - 行锁和表锁有什么区别?什么时候触发?
- 如果是数据库 Owner,整体性能较差该如何优化?
- 除了慢 SQL、机器问题等,还能给出哪些不同方向?
- 多个团队共用数据库时,如何治理长事务和上线操作?
- 除了归档、分区,还有什么办法处理大表?
- 数据库设计、表设计有哪些优化思路?
- 表设计之外,还能从哪些方向优化?
系统设计与 AI - 从前端到后端设计直播间点赞和总数展示。
- 同一个用户是否可以连续点赞?这是我主动澄清的需求。
- 大模型上下文窗口是否越大越好?为什么?
- 知识组织方式与 Ontology 的理解和适用场景,第一种名称待准确题干确认。
Coding、反问与个人经历 - 原地删除重复元素,疑似每个元素最多保留两次。
- 团队具体负责什么业务?需要重点补哪些能力?
- 本场表现和改进建议。
- 岗位 Base 是否在上海?
- 四月份参加字节面试的流程和未继续推进的原因。
- 目前是否还在京东实习?现在在哪个城市?
本篇目录
当前问题0123
- 01
面试官先介绍团队,然后 1~2 分钟做自我介绍。
- 02
随后面试官确认了主要开发语言,我回答主要使用 Java。
- 03
简单介绍一下单例模式
- 04
什么场景适合使用单例模式?
- 05
long/Long 用 == 和 equals() 比较,结果是否一样?
- 06
RabbitMQ 如何避免消息丢失?
- 07
消费者应该什么时候 ACK?
- 08
如何解决缓存穿透?
- 09
行锁和表锁有什么区别?什么情况下触发?
- 10
你知道怎么实现分布式事务吗?
- 11
如果你是数据库的 Owner,整个数据库性能比较差,你会怎么优化?
- 12
一个直播 App 要给每个直播间增加点赞功能。用户点击后,直播间左上角展示点赞总数,要求从前端到后端描述设计。
- 13
大模型上下文窗口是不是越大越好?为什么?
- 14
Redis 相关追问:执行状态、Lua,以及 SET NX EX 分布式锁。
- 15
为什么抢锁和设置过期时间不能简单分两条命令执行?
- 16
多个团队共用数据库时,如何治理长事务和上线操作?
- 17
除了归档、分区,还有什么办法处理大表?
- 18
数据库设计、表设计有哪些优化思路?
- 19
团队具体负责什么业务?需要重点补哪些能力?
- 20
本场表现和改进建议。
- 21
岗位 Base 是否在上海?
- 22
四月份参加字节面试的流程和未继续推进的原因。
- 23
目前是否还在京东实习?现在在哪个城市?
