【面经】小米一面(Java开发)

【面经】小米一面(Java开发)

2019.9.3(36分钟)
1、自我介绍
2、项目里面用了Netty,讲一下Netty的pipeline的步骤
3、Netty里面使用了几个线程处理任务
4、讲一下Netty的IO复用模型
5、讲一下Netty里面的epoll模型
6、常用的数据结构
7、LinkedList和ArrayList的区别和存储结构
8、安全的List怎么做
9、如过ArrayList分配超过内存的大小会怎么做
10、HashMap结构
11、HashMap链表为什么大于8转红黑树
12、数据结构里面的二叉树了解吗
13、说一下B树和B+树的区别
14、为什么用B+树
15、在哪些地方用了B+树和哪些地方用了B树(elasticsearch)
16、链表时的查询时间复杂度和红黑树时的时间复杂度
17、算法里面是分治算法是否用过
18、用过哪些算法思路
19、http协议和tcp协议
20、说一下计算机网络的分层
21、为什么要分层(和面向接口编程思想相同)
22、数据库从一条sql开始到出结果的过程
23、sql的解析执行步骤(先where还是先from那些)
24、平时怎么学习,有没有看一下新技术,或者怎么学习的
25、规划,以后的目标
26、有没有使用GIT
27、有没有参与开源项目的更新迭代和维护

<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. 设计秒杀系统(重点:流量削峰、库存扣减一致性)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值