小米|JAVA|一面面经|2021|

本文分享了一位求职者在小米的JAVA后端面试经历,包括一面和二面的主要问题,涵盖了计网、操作系统、JVM、线程通信、Java集合、算法等知识点。面试官态度和蔼,对于不熟悉的问题会给予引导。虽然算法题未能完全解答,求职者仍获得了二面机会并最终拿到offer。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

[小米]面经,60min

因为是我们大学的校友推荐的简历,也许没有笔试吧,只有两次技术面试。

一面

面试问题

自我介绍

计网:

  • 1.我看你还做过不少项目(简历),说一说你做的仿QQ聊天是怎么实现的吧?
  • 2.计网分为几层?说一下http怎么实现的?
  • 3.http和https有什么区别?
  • 4.说一下对称加密和非对称加密的区别?
  • 5.TCP的三次握手,为什么是三次?

JAVA和操作系统

  • 6.知道JVM吗?(我说不熟悉,他就没再往下问了)
  • 7.知道操作系统吗,说一下进程和线程的区别?
  • 8.说一下线程之间是怎么通讯的?
  • 9.用过什么框架吗?我说的单例模式、抽象工厂模式、观察者模式。手写一个单例模式(懒汉式、饿汉式)。哪一个是线程安全的?
  • 10.平时java用过什么集合?我说的map、set、list。问这些都是线程安全的吗?(当时我忘记了,他就让我分析一下hashmap是不是线程安全的,蒙对了)
    算法
  • 11.平时了解什么算法吗?我说了挺多二分、DFS、BFS、DP、最短路等等。他说让我写一个非递归的二叉树先序遍历。(当时没有写出来,但是我先把思路说出来了。我傻了)
  • 12.那你对二分比较熟悉,给你一道二分题吧
    总结,总的来说小米的面试官还是很和蔼的,遇到不熟悉的问题就告诉他,他会给你换问题,还会给你解释问题的答案,不要不懂装懂,我比较菜,两道算法题都没有通过测试样例,但还是给了
<think>好的,用户想知道小米公司Java开发岗的面试经验总结和常见问题。我需要先整理一下已有的引用内容,看看有没有相关的信息。 根据引用[4],小米面试经验中提到要突出项目亮点,避免让面试官觉得项目太简单。这说明在准备面试时,项目经验是很重要的部分,需要详细准备每个项目的难点和解决方案。另外,引用[2]提到刷题和掌握核心知识点是关键,所以Java基础、算法题、框架原理这些肯定会被问到。 用户的问题集中在Java开发岗,所以需要具体到Java相关的技术点。比如JVM、多线程、集合框架、Spring框架等。同时,小米可能还会问数据库相关的问题,比如MySQL索引优化、事务隔离级别,以及分布式系统设计,比如缓存、消息队列等。 另外,引用[1]和[3]提到面试官会由浅入深提问,并且有面试真题和专题资料,所以需要涵盖从基础到进阶的内容。可能还需要准备系统设计题,比如高并发场景的设计,这符合高级工程师岗位的要求。 现在需要分点整理,包括技术考察重点、项目经验、算法题、系统设计等。每个部分都要结合引用中的建议,比如项目要突出亮点,技术要深入原理。同时,要生成相关问题,确保覆盖用户可能关心的其他方面。</think>### 小米Java开发岗面试经验总结(技术方向) #### 一、技术考察重点 1. **Java核心基础** - JVM内存模型、垃圾回收机制(如CMS/G1区别)[^4] - 多线程:线程池参数设计、`volatile`与`synchronized`底层实现差异 - 集合框架:`ConcurrentHashMap`分段锁原理、`HashMap`扩容优化策略 - 示例问题: *"HashMap在JDK1.8中链表转红黑树的阈值为什么是8?"* 2. **框架原理** - Spring循环依赖解决方式(三级缓存机制) - Spring AOP动态代理实现对比(JDK Proxy vs CGLIB) - MyBatis延迟加载实现原理(代理对象+拦截器) 3. **数据库与分布式** - MySQL索引失效场景及优化方案(需结合EXPLAIN解析) - Redis持久化机制RDB/AOF混合模式应用场景 - Kafka如何通过ISR机制保证消息可靠性 #### 二、项目经验深挖模式 - **重点考察维度**: ```markdown 1. 技术选型合理性:"为什么用RabbitMQ而不是Kafka?" 2. 性能优化实践:"QPS从500提升到2000的具体措施" 3. 异常处理机制:"分布式事务数据不一致的补偿方案" ``` 面试官会要求画出系统架构图并解释关键模块交互[^4] #### 三、算法考核特点 - **典型题目**: ```java // 二叉树层序遍历变体(要求记录每层最大值) public List<Integer> largestValues(TreeNode root) { // 实现代码 } ``` - 小米常考**字符串处理**与**链表操作**类题目 - 需掌握时间复杂度优化方法(如空间换时间策略) #### 四、系统设计高频题 1. 设计短链生成系统(需考虑哈希冲突解决) 2. 实现分布式ID生成服务(Snowflake算法优化) 3. 设计秒杀系统(重点:流量削峰、库存扣减一致性)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值