面试真题

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

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

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

按难度

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

难度:中等 · 企业:阿里巴巴46 道 · 点击进入查看参考答案

中等后端
秒杀场景中悲观锁有没有了解?
结论:悲观锁假设并发冲突频繁,访问数据前先加锁独占资源,适用于强一致性场景。秒杀中可用数据库悲观锁(select for update)或分布式锁(Redis SETNX)防止超卖。原理:事务开启时锁住库存记录,其他请求…
🎤 阿里巴巴
中等后端
秒杀系统要考虑什么,保险品退保返保费要注意什么?
结论:秒杀系统需考虑高并发削峰、防超卖、限流降级与数据一致性;保险退保返保费额外关注资金安全与幂等。要点:1. 流量层:验证码、网关限流、静态资源分离;2. 缓存层:Redis预扣库存,原子DECR;3. 异步:MQ处理…
🎤 阿里巴巴
中等后端
布隆过滤器为什么适合防止缓存穿透?
结论:布隆过滤器以极小空间快速判断key是否存在,拦截非法请求防缓存穿透。要点:缓存穿透指查询不存在数据致请求直达DB;布隆用位数组和k哈希,添加置位,查询若某位0必不存在则拒绝;有误判无漏判,可接受;相比缓存全量key…
🎤 阿里巴巴
中等后端
如何手写一个简单的 RPC 框架?
核心要点:1.定义公共服务接口与实现类;2.服务端注册并监听端口,处理请求;3.客户端通过动态代理透明调用;4.约定序列化与通信协议。原理:RPC基于网络通信和序列化将本地调用转为远程调用。实现思路:服务端提供接口实现,…
🎤 阿里巴巴
中等大数据
实时画像标签有接触吗?实时性怎么定义?怎么确保实时数据准确?
结论:实时画像基于流式数据更新用户标签;实时性指数据产生到标签生效的端到端延迟(秒级或分钟级);准确需数据源可靠与计算精确。要点:实时性按业务分准实时(分钟)与真实时(秒级),以延迟分位数衡量;确保准确:采集层用Kafk…
🎤 阿里巴巴
中等大数据
数仓建模遵循哪些规范?数据治理怎么做?异常数据如何监控?
结论:数仓建模规范包括分层(ODS/DWD/DWS/ADS)、维度建模(星型/雪花)、命名与指标统一;数据治理通过元数据、标准、质量、权责实现;异常监控靠规则校验与告警。要点:建模遵循总线架构与一致性维度,减少冗余;治理…
🎤 阿里巴巴
中等大数据
如何评价一个数仓“干得好”?为什么?
结论:评价数仓“干得好”核心看五个维度:1.数据准确一致,这是生命线;2.时效达标,关键产出按时;3.易用性高,模型清晰查询快;4.成本可控,资源利用优;5.稳定扩展,容灾完备。原理:数仓本质是为业务提供可信及时的数据服…
🎤 阿里巴巴
中等操作系统
对于信号量、volatile 有没有理解?
结论:信号量是用于并发控制的同步原语,volatile保证变量内存可见性但不保证原子性。核心要点:1. 信号量:维护计数器,P操作减1若负则阻塞,V操作加1唤醒等待者,可控制并发访问资源数(如限流);2. volatil…
🎤 阿里巴巴
中等数据库
乐观锁和悲观锁的策略
结论:悲观锁策略为显式加锁独占;乐观锁策略为版本号/CAS无锁校验。具体:1.悲观锁含数据库行锁(SELECT FOR UPDATE)、Java synchronized/ReentrantLock,进临界区前获锁结束释…
🎤 阿里巴巴
中等数据库
热key如何处理?
结论:热key处理核心为本地缓存、多副本分散、拆分与限流。原理:热key指超高并发访问的key,集中单节点致负载不均。1.本地缓存:客户端用Caffeine等缓存副本,减少远程调用;2.多副本:将key复制至多个Redi…
🎤 阿里巴巴
中等数据库
如何理解Buffer Pool
结论:Buffer Pool是InnoDB在内存中缓存数据页和索引页的核心组件,目的是减少磁盘IO提升性能。原理:默认大小为物理内存80%,以16KB页管理;包含free链表(空闲页)、LRU链表(冷热分区,old区防全…
🎤 阿里巴巴
中等数据库
项目中数据库有没有分库分表的场景?
结论:当单表数据超千万、写并发高或实例瓶颈时需分库分表。要点:垂直分表拆大字段(如商品详情分离),水平分表按片键(用户ID哈希、时间范围)拆行;分库将分片分布到多实例,突破单机连接数与CPU限制;场景示例:订单表按use…
🎤 阿里巴巴
中等数据库
MySQL如何排查慢SQL?
核心要点:开启慢查询日志定位,结合EXPLAIN分析执行计划。步骤:1. 开启慢日志:set global slow_query_log=1; long_query_time=1; 2. 通过mysqldumpslow或…
🎤 阿里巴巴
中等数据库
MySQL 一条语句的执行流程?为什么要写 Redo Log?不能直接写 B+ 树吗?
执行流程:连接器认证权限→查询缓存(8.0移除)→分析器词法语法→优化器选索引→执行器调引擎→存储引擎查B+树返回。写Redo Log原因:InnoDB采用WAL(写前日志),Redo Log是物理日志循环写,顺序IO快…
🎤 阿里巴巴
中等数据库
MySQL是怎么执行一条SQL语句的?
结论:MySQL执行SQL分三层:连接层、服务层、存储引擎层。流程:1.连接器建立连接并校验权限;2.查询缓存(8.0已删)命中直接返回;3.分析器做词法语法解析生成解析树;4.优化器选执行计划,如用哪个索引、join顺…
🎤 阿里巴巴
中等数据库
MySQL索引优化知道哪些?
结论:MySQL索引优化核心在于减少扫描行数、避免索引失效、利用覆盖索引。主要方法:1.遵循最左前缀原则:联合索引(a,b,c)仅当查询条件含a或a,b等前缀时才生效,跳过a直接用b则失效;2.禁止对索引列进行函数运算或…
🎤 阿里巴巴
中等数据库
MySQL为什么采用B+树存储?
结论:MySQL采用B+树因其磁盘友好、查询高效且支持范围扫描,优于二叉树、哈希、B树。原理:1.多叉平衡树:一个节点可存多个键值,树高度低(千万数据仅需3-4层),减少磁盘IO次数;2.叶子节点双向链表:所有数据记录在…
🎤 阿里巴巴
中等数据库
MySQL为什么发生死锁,如何解决?
结论:死锁由两个及以上事务循环等待对方持有的锁导致,MySQL会自动检测并回滚。原因:事务A持有资源1锁请求资源2,事务B持有资源2锁请求资源1,互相等待。解决与预防:1.统一资源访问顺序(如按主键ID升序更新),破坏循…
🎤 阿里巴巴
中等数据库
Redis zset的底层结构:压缩列表和跳表,区别,什么时候使用哪一种,为什么不用红黑树?
结论:zset底层使用ziplist(压缩列表)或skiplist+dict(跳表+字典),按阈值切换。区别与选择:1.ziplist:连续内存存储,省内存,但增删查O(n),当元素数<128且成员值<64字节时使用;2…
🎤 阿里巴巴
中等数据库
Redis的过期键如何处理,有哪些方式,会导致问题吗,如何解决?
结论:Redis采用惰性删除+定期删除结合;过期键处理有定时、惰性、定期三种方式。核心要点:定时删除用定时器立即删键,CPU开销大;惰性删除在访问时检查过期则删,可能导致内存泄漏;定期删除每间隔随机抽部分键删除(默认每秒…
🎤 阿里巴巴
题目整理自公开面经,答案由校招宝自研生成,仅供参考