小米面经(已完结)
小米集团是一家以智能手机、智能硬件和IoT平台为核心的消费电子及智能制造公司,也是目前全球领先的智能手机品牌之一。2024 年,小米汽车宣布造车成功,意味着小米从此也是一家车企了。
秋招薪资
此处为语雀内容卡片,点击链接查看:https://www.yuque.com/itwanger/gykdzg/ce6kfght5shhes37

同学 E(附答案)
之前有两位球友一起去了小米,这是其中一位球友的面经,面试题问的还是非常经典的,有球友的参考答案,大部分也都可以从面渣逆袭中找到答案,给大家参考一下。
小米第一个部门
1.一面
●过来的时候面试官让我做了一道算法题,然后让我讲了一下思路,这个算法题我觉得大家应该都非常熟悉:三数之和为0
●你了解类的加载机制吗?(双亲委派开始吟唱)
●那你知道类的热更新的?(类的热部署,重写类的加载方式,监听类文件,每次类文件修改的时候重新加载类)
●你对redis了解多少,说说常见的数据结构和应用场景
●你知道redis的zset底层实现吗(这个我说了一下zset是由哈希表和跳表共同实现的,哈希表单值检索效率高,跳表范围查询效率高)
●为什么hash表范围查询效率比跳表低
●你说跳表是基于双向链表实现的,那跳表为什么要用双向链表不用单向呢(这里卡了很久很久,我一直强调双向链表逆向排序查询的时候更方便,然后修改一个节点的时候也更方便,但是面试官一直说做范围查询你用单向链表不就行了吗?我说逆序排序查找的时候更快,但面试官不对就卡在这里了,然后我说不太清楚就下一题了)
●你了解那些集合?(我说主要是List和Map大类)
●说说List里面各种类的对比(LinkedList ArrayList Vector对比我都说了一遍)
●说说HashMap的扩容机制(达到负载阈值的时候会以两倍扩容,然后说了一下1.7和1.8扩容的对比,1.8做的优化)
●1.8扩容具体实现(我说只需要对比你原先hash表长度进行位运算,如果为1则扩容的位置+这个长度,如果为0则位置不变)
●那你说说扩容的时候每个节点都要进行位运算吗,如果我这个hashmap里面有几十万条数据,都要进行位运算吗?(这里我很懵逼,我记得当时看源码的时候确实会沿着链表遍历每一个节点然后进行位运算,我就开始犹豫了,但最后还是说会对每一位进行位运算,然后提了一下Concurrenthashmap扩容的时候进行多线程扩容,hashmap的优化机制不太清楚)
●你知道redis的一致性hash吗(当时听的时候有点懵逼,没有听过这个名词,然后就说了一下分片集群的hash曹运算,还有hash轮机制)
●那你临时增加一个redis节点,数据如何迁移呢(我不太清楚就没有回答了)
2.二面
●前面一直问我项目相关的问题,还有技术选型(我项目中用了minio和protobuf然后说了一下它们的特性)
●如何通过mysql定位哪条增删改查语句拖慢了整个系统(一开始说了慢日志,被否定了,我就懵逼了?然后就被成功带偏了,面试在这里卡了很久)
●你的项目并发量高吗(我说数据量比较大,然后说了用countdown和线程池完成mysql数据向es的迁移)
●10亿个url里面找到频率最高的前100个
小米第二个部门
1.一面
●前面一直在描述项目的事情
●你封装过springboot starter吗(我的项目封装过然后将项目业务)
●看你项目里面用到了dubbo和gateaway你阅读过源码(没有)
●你平时用到的数据库(mysql)
●说一说mysql索引的底层机制(我说了B树、B+树、hash还有三大引擎对比和扩展)
●为什么需要索引(空间换时间,举了个例子就是书本的目录和具体页数的关系)
●什么时候需要索引(where group by order by 经常使用的字段、还有字段属性唯一的字段,后面还扩展说了一下什么时候不需要索引,比如数据量小的时候、经常更改的数据、where group by order by都没用上的字段......)
●spring的隔离机制(数据库四大隔离级别吟唱)
●默认是哪一种(可重复读,然后我补充说了底层的实现原理,mvcc :readview还有日志机制)
●你有没有看过哪些框架的源码(我说看过数据库的,有用java实现一个简单的数据库,这个思路是mydb项目带来的,然后说了一点我知道的)
●代码题 链表删除重复元素
2.二面
●看你项目使用的xxl job你看过源码吗(这个我说没看过,但是我把xxl job的执行流程说了一遍)
●你看过那些分布式组件的源码比如dubbo springcloud组件之类的(看过nacos的)
●为什么要看nacos的(因为自己项目有使用过就了解一下)
●nacos的服务注册流程
●nacos的服务实列是如何实现的(有临时实列和持久化实例)
●nacos服务实例如何存储的(有缓存机制)
●看你项目用到了dubbo为什么不看dubbo源码(平时能够真正接触到的分布式业务和环境很少,看的源码主要是使用的比较多的框架比如mybatis和springboot)
●gateaway的源码看过吗
●后续就展开了一系列话题但是主要围绕着两个点
●我为什么要录取你
●你为什么选择小米(这里我表达出了非常强烈进入小米的意愿,真情实感,我实验室的人还有面试官基本都能看出来我很想进小米)
面试过程其实有很多可以拓展回答,不太会的问题你也可以尝试说一些自己会的来拉扯一下面试官
同学 F
小米的三面感觉都不太难,实际场景题问的多一些,聊的都很愉快,而且三面感觉是一个领导大佬,会聊的较深,第三面的表现不是很好。以下是根据回忆的面试题(乱序):
Java
1、HashMap的八股(底层,链表/红黑树转换原因),
2、HashTable和ConcurrentHashMap的底层实现
3、ArrayList和LinkedList的区别和使用场景(简单的问题反而被提到是亮点回答,所以说不起眼的知识点也很重要)
4、线程池的参数及创建线程的方式
5、volatile保证了什么(问了具体的内存屏障),volatile加在基本类型和对象上的区别
6、synchronized...
未能定位到原文的划线
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复