面试复盘 | 字节凉经
一面
- Select/poll/epoll 区别 原理 大概是数量限制、数据结构和存取复杂度不同
- epoll的边缘触发和水平触发
- print(&x)输出的是什么地址(实际地址还是虚拟地址) 答了虚拟地址
- 虚拟地址如何转化为真实地址 答:每个进程都有自己的页表,可以通过页表进行计算,大概就是base加偏移量,因为每一个虚拟内存的页对应每一个物理内存的帧。
- 页表
- 阻塞IO与非阻塞IO, 具体从同步阻塞到异步
- Redis的基本数据结构 String Hash List Set Sorted Set
- Redis set的底层实现
- 解释一下跳表
- Redis主从复制的过程
- Raft选举过程 利用超时机制 若跟随者超时未收到领导者消息,则等待一段随机时间后成为一个候选人,并开始新一次领导者选举; 处理时按领导者任期 Raft将时间分为一个个任期,每一个任期的开始都是领导者选举,成功选举领导者后,领导者会在整个任期管理整个集群,若选举失败,则该任期直接结束
- Raft能避免脑裂吗
- 算法题:搜索旋转排序数组,就纯考二分,注意边界即可。
二面
- 内存回收
- 可达性分析,以及采取的方法
- 三色标记法
- hashmap扩容原理
- TCP 哪些协议基于tcp http
- UDP 哪些基于udp dns
- TCP和UDP的区别 TCP 面向流 可靠 面向连接 UDP面向数据报文 不可靠 面向无连接
- TCP如何实现可靠传输 拥塞、窗口、偏移量、确认号、重传机制等
- TCP拥塞控制 new reno 慢启动 拥塞避免 快重传 快恢复
- TCP滑动窗口 arq
- udp如何实现可靠 rudp 上层采用类似tcp的确认号和重传以及拥塞滑动窗口
- 视频流使用的是何种协议(tcp还是udp)为什么 答了udp,单个数据的丢失不影响体验,而且需要速度快
- 共享内存共享的是物理内存 还是虚拟内存 答的物理内存
- 算法题 z子变换、最近公共祖先 k个一组反转
反思
其实底层的知识还是不是很懂,比如打印 &x,以及共享内存是物理内存还是虚拟内存,答案都不太确定,希望大佬们指正,虽然无了。
#面试复盘##字节跳动##面试题目#