小米-java后端开发工程师(技术面)面经

1、HashMap 的底层原理是什么?它是如何处理哈希冲突的?为什么长度是2的幂次方?

2、谈谈你对Java并发包 JUC 的理解。synchronized 和 ReentrantLock 的区别?什么是可重入锁?说说volatile 关键字的作用?它能保证原子性吗?

3、简述Java的垃圾回收机制。有哪些常见的垃圾收集器?它们各自的优缺点和适用场景?如何判断一个对象可以被回收?

4、谈谈你对Java IO/NIO的理解。NIO中的 Selector, Channel, Buffer 是什么?NIO和传统BIO的区别?NIO是如何实现非阻塞的?

5、如何在2亿个整数中找出不重复的整数?

6、快速排序的平均和最坏时间复杂度是多少?为什么?

7、哈希表插入和查找的时间复杂度是多少?为什么?

8、MySQL的索引底层数据结构是什么?为什么使用B+树而不是B树或哈希表?什么是聚簇索引和非聚簇索引?什么是覆盖索引和最左前缀原则?

9、谈谈你对MySQL事务隔离级别的理解。什么是脏读、不可重复读、幻读?MySQL默认的隔离级别是什么?MVCC是如何实现的?

10、SQL优化有哪些常见手段?如何查看一条SQL的执行计划?其中哪些关键信息值得关注?遇到过数据库死锁吗?如何分析和解决?

11、是否了解分库分表?什么时候需要?有哪些常见的分片策略?

12、Spring框架的核心是什么?Spring Bean的生命周期是怎样的?Spring是如何解决循环依赖问题的?

13、Spring MVC的请求处理流程是怎样的?@Autowired 和 @Resource 注解的区别?

14、Spring Boot的自动配置原理是什么?

15、为什么要使用消息队列?如何保证消息不被重复消费?如何保证消息的可靠传输?

16、是否使用过Redis?常用数据类型及其应用场景?如何用Redis实现一个分布式锁?要注意什么问题?Redis的持久化机制?

17、是否了解分布式相关技术?分布式事务的解决方案;分布式ID生成方案

18、设计一个短链接系统。

19、设计一个秒杀系统。

20、如果你要为亿级智能设备设计一个状态上报和指令下发的系统,你会考虑哪些方面?

21、项目中遇到过最大的技术挑战是什么?你是怎么解决的?

全部评论
接好运
点赞 回复 分享
发布于 10-11 00:26 湖南
m
点赞 回复 分享
发布于 09-21 11:56 上海

相关推荐

10-17 15:26
已编辑
同济大学 Java
秋招以来,投递了20+家公司,面了也将近37场目前拿到的意向有虾皮、合合信息、蚂蚁、腾讯、字节、携程、百度;面试完泡的有高德、京东和快手这里记录下时间线,并放了点个人面试这段时间的心得体会,希望能帮助到后来者-------------------1 时间线记录腾讯暑期实习转正字节9.10 一面9.17 二面9.22 三面9.29 HR面10.11 技术加面10.15 意向携程9.4 笔试9.11 线下一面+二面9.19 加面三面9.24 HR面10.16 意向高德9.9 一面9.10 笔试9.16 二面9.29 三面10.16 HR面京东8.23 笔试8.27 一面8.29 二面9.12 线下HR面蚂蚁8.28 一面9.4 二面9.15 HR面百度8.19 笔试9.1 一面9.5 二面9.9 三面10.11 意向快手9.2 一面9.8 二面9.16 三面9.23 HR面暂无后续虾皮8.5 一面8.8 二面8.13 HR面9.8 意向合合信息9.10 一面9.15 二面9.17 HR面9.22 意向小米8.27 一面8.28 二面无后续TPLink普联9.6 一面9.8 二面放弃了后续面试科大讯飞8.30 笔试9.10 一面后续放弃了还有一些做了笔试暂无后续的,如华为、滴滴、虎鲸文娱等-------------------2 个人心得体会这段时间的秋招个人感受是:(1)简历非常重要,关注自己的简历都不用太去看面经了(看些通用的就行),应该关注自己的简历会被如何拷打;(2)面试的时候表现的积极点、聪明点,很多时候面试问的问题未必回答的出来,但要表现出有一种愿意主动思考的态度。很多时候一个优秀的面试官是会主动引导的,这里举个自己某次面试时遇到的例子。面试官:端口是哪一层协议的?我:我确实不太清楚,让我思考一下...我猜测可能是网络层或者传输层?面试官:TCP和UDP连接可以用同一个端口吗?这里其实就是暗示了,我知道TCP和UDP可以用同一个端口,这就说明了它们的端口不是一个概念,且已知tcp和udp是传输层的协议,所以端口也应该是传输层的概念。因此在面试的时候遇到不会的问题不必太担忧,大胆说出自己的思考,结合学过的知识去分析一下,其实也是很不错的能力。(3)针对HR面和技术面准备不同的自我介绍。比如我在技术面的时候一般就会说:做了blabla什么项目,最后一带而过自己还参加过暑期支教活动和研究生班长;而HR面则重点介绍暑期支教活动和研究生班长经历,一带而过项目等等。此外还有一些个人的心得体会,如果有需要就后续再分享吧~
我的求职进度条
点赞 评论 收藏
分享
评论
4
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务