小米Java后端一面-秋招,考察八股文
背景:普通本科,有实习
内容:
算法题:两数之和
1、介绍一下项目,延迟任务怎么做的
2、zset底层原理 为什么用跳表 最差情况下查询复杂度 和其他二叉树、红黑树区别
3、异步任务是怎么做的
4、IOC
5、介绍CAS
6、怎么用的多线程? 什么场景考虑用线程池
7、熟悉的垃圾回收器
8、说一下Redission 面试官说底层都是setnx
9、Redis是单线程的? 多线程体现在哪里
10、synchronized可用在哪里? 场景:在一个类中的读写锁方法加上synchronized
11、Mysql 索引,你项目中哪些表用了什么索引? 索引失效的场景? 大于小于为什么能造成索引失效
12、Mysql ACID Mysql的几个隔离级别 可重复读和读已提交相比?
可重复读主要解决了隔离性
13、MVCC了解吗
14、聊一下网络 TCP和UCP区别
15、UDP优点 (快)
16、TCP建立连接
17、TCP断开连接 为什么需要等待2MSL
18、进行服务发现和负载均衡, 负载均衡算法是什么 是定制的?还是用的轮询