小米-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、项目中遇到过最大的技术挑战是什么?你是怎么解决的?

全部评论
m
点赞 回复 分享
发布于 09-21 11:56 上海

相关推荐

评论
3
10
分享

创作者周榜

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