奇安信一面76min
感觉面试官不是java技术栈,java一点没问
自我介绍
1、tcp四次挥手讲一下,TIME_WAIT在哪里,为什么客户端的TIME-WAIT状态必须等待2MSL
2、tcp五层网络协议
3、tcp三次握手,想问SYN洪泛攻击,知道但是没答好
4、进程和线程的区别
5、虚拟内存
6、进程之间的通信方式,没说socket,让我说tcp通信
7、生产者,消费者模型讲一下,问有写过吗?
8、讲一下死锁
9、进程有哪几种状态
10、虚拟内存和缓存的区别
11、讲一下阻塞io和阻塞io
12、同步和异步
13、用户态和内核态的转换
14、熟悉那种数据库,MySQL.讲一下你知道的引擎
15、讲一下innodb的底层数据结构,说事务隔离级别,幻读,脏读,不可重复读。MySQL默认隔离级别,幻读怎么解决的。
16、讲一下索引类型,聚簇索引和非聚簇的区别
17、最左匹配原则
18、MVCC怎么实现,原理
19、MySQL的乐观锁和悲观锁
20、b+树说一下
21、redis'为什么单线程
22、redis常见数据类型
23、redis中set、hash、bitmap、hyperloglog的底层数据类型
项目
24、es、kafka了解多少
25、es怎么实现高亮的
26、kafka在项目中怎么解耦和异步的
27、es怎么同步数据
28、项目压测数据怎么来的(说我的不合理)
29、分布式session
30、Caffieine做本地缓存,和map有什么区别
31、rpc项目中序列化怎么实现,比较为什么protobuf快,和kryo比较,这里后面就是挖项目了,很细
32、手写一个快排,讲一讲