1、自我介绍
2、项目
3、Kafka怎么保证消息一定被消费(x)
4、tcp和udp(可靠性、速度、效率)
5、tcp如何保证可靠性(流量、拥塞、校验)
6、三握四挥
7、http和https区别
8、mysql常见存储引擎、区别
9、为啥myslam要回表两次
10、哪一个支持高并发
11、b+树索引和哈希索引的区别
12、四大特性解释一下
13、隔离级别
14、什么是幻读(查的时候不存在,写的时候发现记录存在)
15、redis的分布式锁
16、设置过期时间有什么问题,怎么解决的
17、如何对锁续期
18、锁的键怎么设计的
算法:
单例模式安全的和不安全的
1、自我介绍
2、项目
3、epoll和select区别,为什么不用select
4、创建serve用了哪些函数(底层,socket listen bind accept)
5、fd设置为阻塞还是非阻塞,区别
6、在read和write上有什么编码上的差异,返回什么错误码,怎么判断epoll里面数据是否就绪,状态码是什么
7、水平和边缘触发区别,在编码上这两者之间的区别是什么(边缘需要判断是否将缓冲区读满和是否读完数据,读到结尾标志)
8、epoll中如何将fd的写事件加入进去,怎么区分哪个是accept哪个是读事件
9、怎么加写事件,写完后如何发送(实际上数据准备后不需要加事件,直接返回出去)
10、http协议如何解析的
11、tcp三次握手发生在哪个函数
12、tcp怎么处理粘包的(固定长度分片,特殊标记符,头部加包长),哪一种更好
13、如何实现https
14、传输时使用对称还是非对称,为什么
15、http常用的状态码
16、redis数据结构
17、为什么快(少了线程切换,加锁)
18、底层用了什么(epoll)
19、redis的热key、大key(面试官给解释了一下概念,开始问场景题)
对redis的热点数据访问太多了怎么办(1.nginx分流,平摊到多台机器上;2.服务本机存储一个map保存热点数据,减少访问redis)关键字如何更新
大key数据很大怎么办(大数据拆成小数据,像链表)
20、高并发下epoll读大key会造成什么影响(阻塞)
21、static字段有什么作用
1、自我介绍
2、项目介绍
3、两种触发模式在编码上有什么区别
4、epoll读完的标志是什么
5、链接的处理要不要定时器
6、IO的处理要不要定时器
7、定时器怎么做的,实现方案(深挖)
8、取出堆里结点后,当堆再次调整,拿出来结点的指针会不会失效(这里陷入了争执,我认为是拿到结点的地址不会失效,这个结点一直存放在这个地址,堆的调整只是左右子树的指向改变,对于结点的内存位置并没有改变,但是面试官认为堆中取出来的指针当发生调整时,原结点地址就不可用了)
9、https怎么握手的
10、为什么不能第一次直接把密钥给客户端
11、只用一个随机数行不行
12、怎么学习的
13、学到的比较深刻的知识点
14、反问
#我的失利项目复盘##秋招#