- 0
- 0
- 约6.39千字
- 约 19页
- 2026-02-04 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年后端工程师面试技巧与常见问题解析
一、编程基础与算法(共5题,每题10分,总分50分)
题目1:
请实现一个函数,输入一个正整数n,返回其二进制表示中1的个数。例如,输入`9`,输出`2`(因为`9`的二进制表示为`1001`,有2个1)。要求时间复杂度为O(logn)。
题目2:
给定一个无重复元素的数组`nums`和一个目标值`target`,请找出数组中和为目标值`target`的两个数,并返回它们的索引。你可以假设每个输入都只有一个解,且不能重复使用相同的元素。例如,输入`nums=[2,7,11,15]`,`target=9`,输出`[0,1]`(因为`nums[0]+nums[1]=2+7=9`)。
题目3:
请实现一个LRU(LeastRecentlyUsed)缓存机制,支持`get`和`put`操作。`get(key)`返回键对应的值,如果键不存在返回-1。`put(key,value)`将键值对插入缓存,如果键已存在,则更新其值。当缓存容量满时,删除最久未使用的键。假设缓存容量为`capacity`。
题目4:
给定一个链表,判断链表中是否存在环。如果存在环,返回`true`;否则返回`false`。例如,输入`[3,2,0,-4]`,其中节点`0`和`-4`相连,返回`true`。
题目5:
请编写一个函数,输入一个字符串`s`,返回其最长回文子串的长度。例如,输入`s=babad`,输出`3`(因为bab或aba是长度为3的最长回文子串)。
二、系统设计(共3题,每题20分,总分60分)
题目6:
设计一个高并发的短链接系统。要求:
1.输入一个长链接,返回一个短链接;
2.短链接全局唯一,且尽可能短;
3.支持高并发访问,要求QPS(每秒查询次数)达到10万;
4.支持统计短链接的点击次数。
题目7:
设计一个微博系统的核心模块,要求:
1.支持用户发布、评论、转发微博;
2.微博需要支持分页加载,每页显示10条;
3.支持按时间倒序加载,最新发布的优先显示;
4.支持关键词搜索,返回包含关键词的微博列表。
题目8:
设计一个分布式计数器系统,要求:
1.支持高并发计数,每秒百万级请求;
2.分布式部署,支持水平扩展;
3.保证计数的一致性;
4.支持热key(某个计数器被频繁访问)的自动扩容。
三、数据库与存储(共4题,每题15分,总分60分)
题目9:
假设有一个订单表`orders`,包含字段`id`(主键)、`user_id`、`order_time`(订单时间)、`status`(订单状态)。请设计SQL查询语句:
1.查询最近30天内,每个用户的订单数量;
2.查询每个订单状态的订单总数。
题目10:
解释数据库中的事务ACID特性,并举例说明为什么需要事务。
例如:
-原子性(Atomicity):一个事务中的所有操作要么全部完成,要么全部不做。
-一致性(Consistency):事务执行的结果必须使数据库从一个一致性状态转移到另一个一致性状态。
题目11:
比较MySQL和PostgreSQL的优缺点,并说明在什么场景下更倾向于使用哪一个。
例如:
-MySQL:性能优秀,适合读多写少的场景,如电商;
-PostgreSQL:功能更完善,支持复杂查询,适合分析型数据库。
题目12:
设计一个数据库表结构,用于存储用户的购物车数据,包含以下需求:
1.一个用户可以有多条购物车记录;
2.每条购物车记录包含商品ID、商品数量、商品价格;
3.支持根据用户ID和商品ID查询购物车记录。
四、分布式与中间件(共4题,每题15分,总分60分)
题目13:
解释CAP理论,并说明为什么一个分布式系统很难同时满足一致性(Consistency)、可用性(Availability)和分区容错性(PartitionTolerance)。
例如:
-一致性:所有节点在同一时间具有相同的数据;
-可用性:每次请求都能得到响应(不一定返回正确数据);
-分区容错性:网络分区时系统仍能正常工作。
题目14:
说明Kafka和RabbitMQ的区别,并举例说明在什么场景下更倾向于使用哪一个。
例如:
-Kafka:适合高吞吐量的消息队列,适合日志收集、实时数据分析;
-RabbitMQ:适合复杂的消息路由,适合订单系统。
题目15:
设计一个分布式锁的实现方案,要求:
1.支持高并发;
2.避免死锁;
3.保证分布式环境下的锁的互斥性。
题目16:
解释什么是分布式事务,并说明常见的分布式事务解决方案(如2PC、TCC、Saga)。
例如:
-
原创力文档

文档评论(0)