职位题库

服务端开发工程师面试题库

面向服务端开发工程师相关面试,围绕算法、消息队列、MySQL、项目经验、系统设计等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

33 道题目建议用时 99 分钟专项面试练习

全部题目 33 道题

01

请介绍一下你在实习中负责的业务,以及你使用消息队列解决了什么问题?

考察候选人能否清晰描述实习业务背景,并说明消息队列在其中的具体应用场景、选型理由和实际效果。
02

你了解Kafka的源码吗?请谈谈Kafka的高可用和消息可靠性是如何实现的。

考察候选人对Kafka底层原理的掌握程度,包括副本机制、ISR、ACK机制等,以及是否具备源码级理解。
03

你们为什么使用Redis实现分布式锁,而不是MySQL或Zookeeper?

考察候选人对分布式锁不同实现方案的对比理解,包括性能、一致性、可用性等方面的权衡。
04

请描述电商图生视频缓存的设计,并说明如何避免缓存重建时的并发冲突?

考察候选人对缓存架构设计、缓存一致性、并发控制的理解,特别是双重检验和分布式锁的应用。
05

TCP为什么会出现粘包拆包问题?你的RPC项目自定义协议是如何处理粘包拆包的?

考察候选人对TCP流式协议的理解,以及在实际RPC项目中解决粘包拆包问题的能力。
06

请做一下自我介绍

考察候选人的表达组织能力、与岗位的匹配度,以及能否在短时间内突出与后端服务端开发相关的经历。
07

介绍一下你参与的平台,重点讲技术难点、解决思路

考察候选人能否从业务背景出发,清晰描述系统架构、技术难点和取舍过程,判断其是否真正参与过核心开发。
08

HashMap 的底层结构是什么?JDK 7 和 JDK 8 有哪些关键差异

考察候选人对 Java 集合底层实现、版本演进和并发安全问题的理解深度。
09

Kafka 如何尽量保证一条业务数据不丢失

考察候选人是否理解消息队列端到端不丢失需要生产者、Broker、消费者三方协同,以及幂等和分布式事务边界。
10

MySQL 为什么使用 B+ 树作为索引结构,而不是 B 树、红黑树或者哈希表

考察候选人对数据库索引选型、磁盘 I/O 特性、范围查询和聚簇索引回表机制的理解。
11

请实现求两个有序数组的最长公共子串长度,基础版要求两数组无重复数字且时间空间复杂度均小于O(MN),进阶版允许重复数字。

考察候选人在有序数组约束下设计低复杂度算法的能力,以及处理重复元素时的边界情况。
12

你在[你的真实项目]中引入 trace ID 的背景是什么?之前存在哪些具体问题?

考察候选人能否清晰描述技术问题的背景、痛点与目标,而非直接跳入实现。
返回面试题库