面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
641 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

技术岗641 道 · 点击进入查看参考答案

中等数据库
Redis如何实现分布式锁?除了setnx还有其他方法吗?
结论:Redis分布式锁常用SETNX,但有其他更优方法;除SETNX外,推荐SET key value NX PX milliseconds原子命令(Redis 2.6+)避免非原子加过期导致死锁;Redlock算法基…
🎤 字节跳动
中等数据库
redis三大缓存问题和解决方案
结论:Redis三大缓存问题是穿透、击穿、雪崩,解决方案不同;穿透指查询不存在数据导致缓存无效请求直达数据库,用布隆过滤器拦截非法key或缓存空对象设短过期;击穿指热点key过期瞬间并发打DB,采用分布式锁单线程重建或热…
🎤 百度
中等数据库
Redis线程安全问题如何解决?
结论:Redis服务器单线程执行命令天然线程安全,客户端多线程需规范使用;内部单线程串行化命令无竞态条件,自身安全;若客户端多线程共享同一连接会导致命令交错,应使用连接池或同步块;6.0多线程IO仅网络读写,执行阶段单线…
🎤 读书郎
中等数据库
缓存数据量很大,达到内存放不下,怎么解决?
结论:采用分布式缓存集群、多级缓存、淘汰压缩、冷热分离。原理:单节点内存受限,用Redis Cluster分片到多机;本地缓存+分布式减轻远端压力;设LRU/LFU淘汰及TTL;value用protobuf压缩;冷数据落…
🎤 百度
中等数据库
缓存雪崩 / 穿透 / 击穿
结论:雪崩指大量key同时失效或缓存宕机压垮DB;穿透指查不存在数据绕过缓存;击穿指热点key失效瞬间高并发打DB。解决:雪崩用过期加随机、集群高可用、限流;穿透用布隆过滤器、缓存空对象短TTL;击穿用互斥锁或逻辑过期。…
🎤 腾讯
中等数据库
乐观锁和悲观锁的区别与使用场景?
结论:悲观锁操作前加锁,乐观锁提交时校验。核心区别:1)加锁时机:悲观锁先加锁再操作,乐观锁不加锁;2)冲突处理:悲观锁阻塞等待,乐观锁回滚或重试;3)性能:悲观锁开销大但安全,乐观锁开销小但可能自旋。原理:悲观锁依赖数…
🎤 阿里巴巴
中等数据库
乐观锁和悲观锁的原理与适用场景?
结论:悲观锁基于加锁协议,乐观锁基于冲突检测。原理:悲观锁利用数据库锁(行锁、表锁)或内存锁(mutex)在事务开始即独占资源;乐观锁通过版本戳或CAS指令,在更新时比对历史值,若被改则失败。适用场景:悲观锁用于高竞争、…
🎤 京东
中等数据库
MVCC 是什么?
结论:MVCC(多版本并发控制)是数据库通过数据多版本实现非锁定读、提升并发的机制。原理:每行记录附隐藏事务ID与回滚指针,修改时生成新版本链(依托 undo log)。读事务依据隔离级别建 ReadView,只读取提交…
🎤 腾讯
中等数据库
User表分表处理后如何根据字段查找到某条数据在哪张表
结论:需依赖分片键和分片路由规则定位物理表。核心要点:若查询条件包含分片键(如user_id),直接应用分片算法计算表名;若不含分片键,需遍历所有分表或借助额外路由表。原理:常见分片策略有哈希取模(user_id % N…
🎤 百度
中等算法
手撕 LeetCode 199. 二叉树的右视图
结论:二叉树的右视图即每层最右侧节点,可用BFS层序遍历或DFS实现。要点:1. BFS:用队列,每层遍历前记录大小size,循环size次,取最后一个出队节点即为右视图节点;2. DFS:优先遍历右子树,记录当前深度,…
🎤 腾讯
中等算法
手撕题:数组中每个长度为 k 的滑动窗口内的最大值,要求最短时间复杂度?
结论:最短时间复杂度O(n),用单调双端队列维护窗口内潜在最大值索引。原理:队列存下标保证对应值递减;遍历数组,移除队头超出窗口左边界的索引,移除队尾小于当前元素的索引,加入当前;窗口形成后队头即最大值。对比暴力O(nk…
🎤 京东
中等算法
算法 给前序遍历和中序遍历还原二叉树
结论:给定前序遍历(根左右)和中序遍历(左根右),可唯一还原二叉树。核心要点:前序首元素为根节点;在中序中找到根位置,左侧为左子树中序,右侧为右子树中序;根据左子树节点数在前序中划分左右子树前序;递归构建左右子树。优化:…
🎤 字节跳动
中等算法
算法 求字符串位置
结论:求字符串位置通常指子串查找(如实现strStr),返回模式串在主串中首次出现的起始索引,无则返回-1;推荐KMP算法。核心要点:暴力匹配O(n*m)易超时;KMP通过预处理模式串得到next数组(最长公共前后缀长度…
🎤 字节跳动
中等算法
算法 求最长回文子串
结论:最长回文子串可用中心扩展法(O(n^2))或Manacher算法(O(n))。核心要点:中心扩展以每个字符及两字符间隙为中心,向左右扩直至不匹配,记录最大长度及起点;需分别处理奇数(中心1字符)和偶数(中心2相同字…
🎤 字节跳动
中等算法
算法 蛇形遍历二叉树
结论:使用BFS按层遍历二叉树,根据层数奇偶决定该层节点值的收集顺序实现蛇形(之字形)输出。核心要点:1) 用队列进行广度优先搜索,每层先记录队列大小size;2) 将当前层节点值取出放入临时列表,若当前层数为奇数(根层…
🎤 字节跳动
中等算法
算法 最长公共序列
结论:最长公共序列(LCS)用动态规划求解,状态转移依据字符是否相等。核心要点:定义dp[i][j]为串A前i个与串B前j个字符的LCS长度;若A[i-1]==B[j-1]则dp[i][j]=dp[i-1][j-1]+1…
🎤 字节跳动
中等算法
算法:三数之和(Leetcode 15)
结论:三数之和通过排序加双指针在O(n^2)内找出所有和为0且不重复的三元组。核心要点:1) 数组升序排序;2) 枚举第一个数i,若nums[i]>0提前结束,若nums[i]==nums[i-1]跳过去重;3) 左指针…
🎤 腾讯
中等算法
算法:LCA 最近公共祖先(递归 + 哈希解法)
结论:最近公共祖先(LCA)可用递归后序查找或哈希父节点法求解。核心要点:递归法:若根空或根等于p/q返回根;递归左左、右右;若左右均非空则当前根是LCA,否则返回非空的哪边。哈希法:DFS遍历时用哈希表记录每个节点的父…
🎤 腾讯
中等算法
算法题:最长无重复字符子串(滑动窗口)
结论:使用滑动窗口配合哈希表存储字符最近出现下标,动态维护无重复子串左右边界,O(n)时间求最长长度。要点:初始化左指针left=0、最大长度max=0、哈希表记录字符最新下标;右指针right遍历,若s[right]在…
🎤 腾讯
中等算法
跳表的底层原理,为什么要使用跳表不使用红黑树?
结论:跳表是基于有序链表加多层索引实现二分查找的数据结构;相比红黑树,跳表区间查询更高效、实现简单、并发控制更容易。原理:底层是有序单向链表,每层以概率p(如0.25)向上建索引,平均查找O(log n);红黑树是平衡二…
🎤 阿里巴巴
题目整理自公开面经,答案由校招宝自研生成,仅供参考